Fragen zu allen anderen Programmiersprachen.
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 22.02.2009 17:48
Hi,
ich hab hier folgende DLL in PB geschrieben:
Code: Alles auswählen
ProcedureDLL myfunc(*func)
CallFunctionFast(*func,"a","b")
EndProcedure
Nun wills in C++ einfach nicht funktionieren, die myfunc-Funktion meine Funktion in C++ aufrufen zu lassen. Das Programm stürtzt einfach ab.
cxAlex
Beiträge: 2111 Registriert: 26.06.2008 10:42
Beitrag
von cxAlex » 22.02.2009 17:58
C benutz CDECL Aufrufkonvention, du must schreiben:
milan1612
Beiträge: 810 Registriert: 15.04.2007 17:58
Beitrag
von milan1612 » 22.02.2009 18:30
Deklarier deine C++ Funktion so
und es sollte funktionieren...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 22.02.2009 18:36
Ja mach ich ja und die anderen Funktionen der DLL kann ich auch problemlos aufrufen, allerdings stürzt er immer bei dieser Funktion ab.
Zuletzt geändert von
X0r am 22.02.2009 18:51, insgesamt 1-mal geändert.
Andesdaf
Moderator
Beiträge: 2673 Registriert: 15.06.2008 18:22
Wohnort: Dresden
Beitrag
von Andesdaf » 22.02.2009 18:40
es kann ja auch durchaus der Inhalt der Procedure sein...
Win11 x64 | PB 6.20
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 22.02.2009 18:41
Also ne, auf sowas pass ich schon auf, inhaltslos.
Edit:
Es funktioniert einfach nicht.
Könnte bitte jemand so lieb sein und es mal testen.
milan1612
Beiträge: 810 Registriert: 15.04.2007 17:58
Beitrag
von milan1612 » 22.02.2009 19:17
Pack doch bitte mal ein Beispielprojekt zusammen, dann werd ichs mir mal ansehen.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 22.02.2009 19:19
Ich poste erstmal den Code, vielleicht kommste ja so drauf:
.h-Datei:
Code: Alles auswählen
//...
__declspec(dllimport) long __stdcall FSU_ReceiveUpdateInformation(void* procadr);
//...
dann in der main.cpp-Datei.
milan1612
Beiträge: 810 Registriert: 15.04.2007 17:58
Beitrag
von milan1612 » 22.02.2009 19:27
Und wie benutzt du die DLL? Per Import Lib oder mit der API? Bitte pack
doch mal schnell ein VS Beispielprojekt zusammen, sonst kann ich da gar
nix debuggen und die Compileroptionen bleiben mir auch unbekannt...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 22.02.2009 20:42
So, hab jetzt nochmal paar Tests gemacht.
Also, wenn die Funktion von der DLL ohne Parameter aufgerufen wird, funktioniert es wunderbar. Ansonsten gibts nen Absturz.
Und dann hat man den Fehler auch schon. Man muss CallCFunctionFast nehmen.