Entwickler-Ecke
Sonstiges (Delphi) - Problem mit FillChar
Newhack - So 16.10.05 23:15
Titel: Problem mit FillChar
Hallo.
Hab seit kurzen ein Problem bie Delphi.
Habe Delphi2005.
Ich wollte mit dieser Prozedure arbeiten:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure ShellExecute_AndWait(FileName: string; Params: string); var exInfo: TShellExecuteInfo; Ph: DWORD; begin FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess begin ShowMessage(SysErrorMessage(GetLastError)); Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); end; |
Also einfach 2 Dateien kopieren. Dennoch hat Delphi ein Problem mit FillChar(exInfo, SizeOf(exInfo), 0);.
Die uses ShellApi ist auch drinne.
Delphi-Quelltext
1:
| [Fehler] Unit2.pas(39): E2003 Undefinierter Bezeichner: 'FillChar' |
Kann da jemand helfen?
Danke
Newhack ;)
Moderiert von
raziel: Quote- durch Delphi-Tags ersetzt
retnyg - Mo 17.10.05 02:50
interessant, fillchar sollte dein delphi schon kennen -> system.pas.
alternativ kannst du auch statt
Delphi-Quelltext
1:
| FillChar(exInfo, SizeOf(exInfo), 0); |
ZeroMemory(@exInfo, SizeOf(exInfo)); verwenden
Newhack - Mo 17.10.05 08:44
Kann mir jemand mal die system.pas geben? Viellt. ist meine defekt. Wo soll ich die datei dann hni kopieren?
Bei ZeroMemory kommt der gleiche Fehler :(
retnyg - Mo 17.10.05 12:40
http://www.delphi-forum.de/viewtopic.php?t=47359&highlight= <- das wird hier nicht gerne gesehen!
die system.pas bzw dcu ist grundbestandteil deiner delphi installation.
hier hilft vermutlich nur neuinstallieren.
alternativ kannst du auch folgende proc verwenden
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure ZeroMemory(p:pointer; count:integer); var pend: pbyte; begin pend := cardinal(p) + count; while cardinal(p) < cardinal(pend) do begin pbyte(p)^ := 0; inc(p); end; end; |
Newhack - Mo 17.10.05 13:55
Danke retnyg
Dennoch gibt jetzt Delphi ein Fehler bei pbyte an.
[Fehler] Unit2.pas(34): E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
Neuinstallation hatte bis jetzt auch kein ERfolg. :(
retnyg - Mo 17.10.05 13:57
Newhack hat folgendes geschrieben: |
| Dennoch gibt jetzt Delphi ein Fehler bei pbyte an. |
type pbyte = ^byte;
Newhack hat folgendes geschrieben: |
| [Fehler] Unit2.pas(34): E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig |
das hört sich für mich so an als ob du versuchst, WIN32 CODE IN EINER .NET ANWENDUNG EINZUFÜGEN, was natürlich nicht geht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!