Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
heiko Gast
|
Verfasst am: 16. Nov 2005 16:40 Titel: problem mit einbinden von c++-dll |
|
|
hallo leute,
ich hab versucht in mein vb6-projekt die Funktion test_add einzubinden, die in einer c++ dll steht und dort exportiert wird:
C++ - (dll):
Code: | extern "C" __declspec(dllexport) int test_add(int x, int y); |
In meinem visual basic projekt importiere ich sie dann mit:
Code: | Private Declare Function test_add Lib "D:\src\Debug\coldet.dll" _
(ByVal x As Integer, ByVal y As Integer) As Integer |
und rufe sie dann in einer funktion auf:
Code: | Sub Test_MainMenu()
Dim e As Integer
e = test_add(3, 4)
MsgBox CStr(e)
End Sub |
Die Funktion wird auch aufgerufen, und richtig ausgeführt, aber nachdem die Funktion "Test_MainMenu()" dann beendet ist, hängt sich das programm auf (natürlich nur wenn ich "test_add" auch aufrufe, sonst läuft alles normal).
Naja ich hoffe irgendjemand weiss vielleicht an was das liegen könnte.
gruss heiko |
|
Nach oben |
|
|
|
heiko_f Gast
|
Verfasst am: 18. Nov 2005 17:55 Titel: |
|
|
ich hab jetzt mal einen alias vergeben und die parameter zu long gemacht. scheint aber alles nichts zu helfen. ich hab jetzt mal den code der dll und der vb-exe aufs allernötigste reduziert, aber es tut einfach nicht, ich weiss nicht woran es liegt. die funktion liefert als wert dann nicht 200 sondern irgendwas wie 12234323.
Hier mal der gesamte code der c++-dll:
Code: |
// Funktionen exportieren
extern "C" __declspec(dllexport) int test_add(int x);
int test_add(int x)
{
return x;
} |
Und der gesamte code der vb-exe, die nur noch ein formular mit button ist:
Code: |
Private Declare Function test_add1 Lib _
"D:\heiko friedrich\collision detection\testvbexe\testcdll\Debug\testcdll.dll" _
Alias "test_add" (ByRef x As Long) As Long
Private Sub Command1_Click()
Dim d As Long
d = test_add1(200)
MsgBox CStr(d)
End Sub
|
naja ich hoffe ihr habt noch tipps was ich noch versuchen könnte.
gruss heiko |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen
|
|