Autor Beitrag
hanshermann
Hält's aus hier
Beiträge: 10

XP Vista Windows 7
Delphi5, Delphi2009
BeitragVerfasst: Fr 18.09.09 18:01 
Der folgende Code funktioniert under Delphi5 einwandfrei.
Unter Delphi2009 kommt der String in s nicht in der procedure an.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure swe_set_ephe_path(path : PChar)
  stdcallfarexternal 'swedll32.dll' Name '_swe_set_ephe_path@4';

  s := GetCurrentDir + '\ephe';
  swe_set_ephe_path(PChar(s));

Es hängt sicher mit der anderen Pointer-Behandlung von Strings zusammen.
Was muss man undter Delphi2009 ändern??
Hanshermann


Moderiert von user profile iconGausi: Topic aus Programmierwerkzeuge verschoben am Fr 18.09.2009 um 18:06
Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 18.09.09 18:06 
Hallo und :welcome: in der Entwickler-Ecke,

Wenn die dll einen AnsiChar erwartet (also 1 Byte pro Zeichen), dann muss man unter D2009 PAnsiChar verwenden. Theoretisch sollte es so funktionieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure swe_set_ephe_path(path : PAnsiChar) 
stdcallfarexternal 'swedll32.dll' Name '_swe_set_ephe_path@4'

s := GetCurrentDir + '\ephe'
swe_set_ephe_path(PAnsiChar(s));


Es kann aber gut sein, dass die dll dann auch noch an anderen Stellen Probleme macht. ;-)

_________________
We are, we were and will not be.
hanshermann Threadstarter
Hält's aus hier
Beiträge: 10

XP Vista Windows 7
Delphi5, Delphi2009
BeitragVerfasst: Sa 19.09.09 09:44 
Danke! Die Idee war gut, doch es funkt nicht. Ich hab die Pointer durch AnsiString ersetzt .- dann ging's!!
Ich weiss nicht warum.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure swe_set_ephe_path(path : AnsiString) 
stdcallfarexternal 'swedll32.dll' Name '_swe_set_ephe_path@4'
s := GetCurrentDir + '\ephe'
swe_set_ephe_path(s);


LG
Hans

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt