다음 델파이 함수를 추가 한 후 데이터 유형이 잘못 정렬 된 경우 오류가 발생합니다. Project ... faulted with message: 'datatype misalignment at 0x77a7d7d8'. Process Stopped. Use Step or Run to continue.
델파이와의 데이터 유형 불일치?
내가 추가 한 기능은 다음과 같습니다. timestamp 만 실제로 파일에 쓰여지지만 함수가 실제로 성공적으로 완료됩니다.
procedure Log(msg : String);
var
tempFolderChars : array [0..MAX_PATH] of Char;
tempFolder : string;
logFile : TextFile;
dt : TDateTime;
begin
GetTempPath(SizeOf(tempFolderChars), tempFolderChars);
tempFolder := IncludeTrailingPathDelimiter(String(tempFolderChars));
dt := Now();
AssignFile(logFile, tempFolder + 'GenericHolding.txt');
if FileExists(tempFolder + 'GenericHolding.txt') then
Append(logFile)
else
ReWrite(logFile);
Write(logFile, FormatDateTime('yyyy-mm-dd hh:nn:ss ', now));
Write(logFile, msg);
Write(logFile, #13, #10);
CloseFile(logFile);
end;
편집 : 자세한 조립 출력을 추가했습니다.
ntdll.NtQueryInformationProcess:
77BAFAC8 B816000000 mov eax,$00000016
77BAFACD 33C9 xor ecx,ecx
77BAFACF 8D542404 lea edx,[esp+$04]
77BAFAD3 64FF15C0000000 call dword ptr fs:[$000000c0]
77BAFADA 83C404 add esp,$04
77BAFADD C21400 ret $0014
당신이 주소'0x77a7d7d8'에서 무엇을 게시하시기 바랍니다 수 있을까요? 그리고 아마 스택 추적? –
코드를 사용하여 문제를 재현 할 수 없습니다 (복사/직접 D2007 프로젝트에 붙여 넣기). 어떤 델파이 버전과 OS를 사용하고 있습니까? –
IIRC, 델파이 버전은 단순한 타입 캐스트가 항상 효과적이지는 않을 것이기 때문에 정말로 중요합니다. 이전 버전의 Delphi에서는 StrPas를 사용해야합니다. 도움이 될 또 다른 것은 당신이 전달하는 msg의 내용입니다. – Graymatter