Moin moin,
ich habe ein Problem mit meiner Delphi-DLL (MyDLL.DLL).
Ich rufe aus einer C-Applikation (um genau zu sein aus einer Visualisierung (Script in C)) eine DLL-Funktion meiner in Delphi 2010 erstellten DLL auf.
Dieser Funktion übergebe ich drei "strings" in Form von char* und einige integer.
Der Aufruf (WinCC) sieht folgendermaßen aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| #pragma code ("MyDLL.DLL"); int MyFunction (char * pString1, char *pString2, char *pString3, int nType, int nMode, int nFlag, int nReserve); #pragma code(); // hiermit wird die Funktion aus der DLL deklariert
char szString1[100]; char szString2[100]; char szString3[10];
strcpy (szString1, "teststring1"); strcpy (szString2, "teststring2"); strcpy (szString3, "test3"); MyFunction (szString1, szString2, szString3, 1 ,0, 0, 0); // Aufruf der Funktion aus der DLL |
Ausschnitt aus der DLL:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function MyFunction (pString1 : pAnsiChar; pString2 : pAnsiChar; pString3 : pAnsiChar; nType : integer; nMode, nFlag, nReserve : integer): integer; var strString1: string; strString2: string; strString3: string; begin ... ... strString1 := String(AnsiString(PAnsiChar(pString1))); strString2 := String(AnsiString(PAnsiChar(pString2))); strString3 := String(AnsiString(PAnsiChar(pString3))); ... ... |
In den strings steht nun leider nüscht drin.
Was mache ich hier falsch??? Habe das Gefühl ich hab n Brett vorm Kopp und dass die Lösung nahe liegt...
Vielleicht kann ja einer das Brett entfernen, wäre sehr dankbar.
Gruß, Mikro79
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 15.02.2011 um 17:14