Autor | Thema: Hilfe Roland, was macht Profan da !!!! | | Datum:26.05.01 14:24 
(galaxy@mrk-soft.de) | |
Hallo Roland,
was macht Profan beim beenden mit dem
Fenster ????
Ich nutze eine DLL, dort gibt es eine
Funktion INIT, zum Inistalisieren der
DLL, genauer, es werden Struckturen zum
Arbeiten angelegt. Als Parameter bei
Init steht in der doku, das Hwnd angegeben
werden soll.
Darauf habe ich folgendes umgesetzt:
def init(1) !"xdll.dll","dllinit"
def dlldelete() !"xdll.dll","dlldelete"
..... im Code
dll& = UseDll("xdll.dll")
print init(%hwnd) 'Init !!!!!
Die DLL arbeitet korrekt, alles funktioniert
nach wunsch. Beim Programmbeenden wird
mittels
dlldeelte()
FreeDll dll&
END
alles wieder freigegeben, noch läuft Profan,
beendet sich beim beenden mit EMD mit einem Anwendungsfehler,
Expension in Profan, felher bei Adresse xxx,
lesen von xxxxx.
Nun kommts, lasse ich beim INIT das %Hwnd
weg oder geb da irgendetwas ein, ist die
dll zwars nicht inistalisiert, rückgabe ist
ein fehlerwert bei init, aber profan bringt
keinen fehler.
Was macht also hier Profan beim beenden
des Programms, bzw. darf man %hwnd nicht
für Dlls werwenden, die dort Messages
versenden.
|
| | Datum: 26.05.01 14:49 
(rgh-soft@t-online.de) | |
Hallo Thorsten!
Ich nehme an, die Funktion INIT in Deiner DLL erwartet einen LongInt als Parameter. Daher solltest Du %Hwnd vorher in einem Longint zwischenspeichern und diesen dann übergeben. Das ist sicherer.
Ansonsten kann ich dazu nichts sagen, ohne die DLL zu kennen. Sollte das Problem immer noch auftauchen, würde ich vermuten, daß die DLL irgendetwas nicht ordentlich freigibt, was beim Beenden des aufrufenden Programmes zum Crash führen kann. Es kann natürlich auch sein, daß die DLL mit dem Window, dessen Handle Du übergeben hast (in dem Fall das Hauptfenster von PROFAN), etwas anstellt, was sich mit dem ordentlichen Beenden von PROFAN und dem damit verbundenen Schließen des Hauptfensters nicht verträgt.
|
|
|