Hi, ich habe derzeit ein Problem zwischen dem GM und DLLs, weshalb ich die HauptDLL erstmal in den Hintergrund gestellt habe und zum Test eine MessageBox DLL programmiert habe, doch dort treten die selben Probleme auf.
Hier erstmal die DLL und die gmk Datei: dlltest.rar
Das erste Problem ist, dass meine DLL nur strings empfängt aber keine Reals. Ich wollte nämlich innerhalb der DLL eine switch Abfrage einbauen, die den Messageboxtyp, den man der DLL als 3. Parameter übergibt, verarbeitet und somit eine MessageBox erstellt. Das Problem ist, dass die DLL den int Wert nicht empfängt. Die beiden Strings (für den Text und den Titel) werden empfangen aber nicht der Integer.
Das zweite Problem ist, wenn man das Programm startet, dass der GM gleich einen unexpectet error ausgibt, wenn ich versuche, direkt unter den external_define Funktionen einen external_call einzubauen:
Übrigens habe ich hier die Reals gleich ausm Spiel genommen. Wenn ich jedenfalls den Code so umbaue:
Dann empfängt die DLL diesen Integer eben nicht (bzw. er ist immer 0).
Das zweite Problem ist, dass wenn ich z.B. eine MessageBox mit dem VK_ENTER Event anzeigen lassen will, dann wiederholt er diesen Befehl dauerhaft, wenn ich auf OK klicke (d.h. Taskmanager -> Prozess beenden). Wenn ich jedoch vor den Funktionsausruf die GM Funktion "show_message();" einbaue, passiert es komischerweise nicht:
VK_Enter Event:
VK Enter Event:
Daraus folgt auch ein weiteres Problem und zwar ist es, dass ihc nicht mehrere Messages hintereinander anzeigen lassen kann. Also den Befehl CGM_ShowMessage mehrmals hintereinander (er zeigt nur die erste Messagebox an).
Wo ist in dem Example das Problem? Ich steh im Moment echt aufm Schlauch, weil ich das Problem einfach nicht finde. Ich hoffe, da ist jemand von euch besser im finden als ich.
An der DLL sollte es eigentlich auch nicht liegen. Es sind alles __stdcalls und mit __cdecl Funktionsaufrufen (natürlich dann auch im GM umgestellt) funktioniert es ebenfalls nicht.
mfg Critical
Hier erstmal die DLL und die gmk Datei: dlltest.rar
Das erste Problem ist, dass meine DLL nur strings empfängt aber keine Reals. Ich wollte nämlich innerhalb der DLL eine switch Abfrage einbauen, die den Messageboxtyp, den man der DLL als 3. Parameter übergibt, verarbeitet und somit eine MessageBox erstellt. Das Problem ist, dass die DLL den int Wert nicht empfängt. Die beiden Strings (für den Text und den Titel) werden empfangen aber nicht der Integer.
Das zweite Problem ist, wenn man das Programm startet, dass der GM gleich einen unexpectet error ausgibt, wenn ich versuche, direkt unter den external_define Funktionen einen external_call einzubauen:
Übrigens habe ich hier die Reals gleich ausm Spiel genommen. Wenn ich jedenfalls den Code so umbaue:
Dann empfängt die DLL diesen Integer eben nicht (bzw. er ist immer 0).
Das zweite Problem ist, dass wenn ich z.B. eine MessageBox mit dem VK_ENTER Event anzeigen lassen will, dann wiederholt er diesen Befehl dauerhaft, wenn ich auf OK klicke (d.h. Taskmanager -> Prozess beenden). Wenn ich jedoch vor den Funktionsausruf die GM Funktion "show_message();" einbaue, passiert es komischerweise nicht:
VK_Enter Event:
VK Enter Event:
Daraus folgt auch ein weiteres Problem und zwar ist es, dass ihc nicht mehrere Messages hintereinander anzeigen lassen kann. Also den Befehl CGM_ShowMessage mehrmals hintereinander (er zeigt nur die erste Messagebox an).
Wo ist in dem Example das Problem? Ich steh im Moment echt aufm Schlauch, weil ich das Problem einfach nicht finde. Ich hoffe, da ist jemand von euch besser im finden als ich.
An der DLL sollte es eigentlich auch nicht liegen. Es sind alles __stdcalls und mit __cdecl Funktionsaufrufen (natürlich dann auch im GM umgestellt) funktioniert es ebenfalls nicht.
mfg Critical