Hallo Zusammen,
Ich stelle gerade meine Anwendung auf 64bit um. Der Code funktioniert soweit, bloss beim Aufruf von einem Thread kriege ich immer wieder einen Absturz, ich verstehe allerdings nicht warum, den Thread hab ich eigentlich nach Delphi-Beispiel nachprogrammiert:
Delphi-Quellcode:
interface
type
TMsgRecord = record
sPath: String;
sIdent: String;
end;
implementation
uses [...];
ThreadVar
msgPtr : ^TMsgRecord;
function TFrom1.fctCheckSystem:Boolean;
[....]
procedure prcDirectoryExists(_pPfad: Pointer);
var
sPfad: String;
sIdent: String;
msgData: TWMMessageData;
begin
msgPtr := _pPfad;
sPfad := msgPtr.sPath;
sIdent := msgPtr.sIdent;
[..]
end;
procedure prcCheckPaths;
var
rec_ThreadParams: TMsgRecord;
aThreadID: array of DWord;
hndThread: THandle;
objINIPath: TINIPath;
begin
[..]
SetLength(aThreadID, lstPaths.Count);
for i1 := 0 to lstPaths.Count - 1 do
begin
rec_ThreadParams.sPath := lstPaths[i1].sPath;
rec_ThreadParams.sIdent := lstPaths[i1].sIdent;
hndThread := BeginThread(nil, 0, @prcDirectoryExists, Addr(rec_ThreadParams), 0, aThreadID[i1]);
CloseHandle(hndThread);
end;
end;
end;
Sobald ich auf "msgPtr.sPath" zugreife stürzt mir meine Anwendung ab, weil Sie anscheinend nicht auf den Pointer zugreifen kann.
Hat jemand einen Tipp für mich?