Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 240970 (2406)
  Suchen
 Zurück zur Übersicht
 AutorThema: DLL
Martin Pohl
Datum:06.08.02 10:15 Antwortenals Email verschicken (martin_pohl@msn.com) 


Hallo!

Ich habe ein kleines Programm, das einen Dialog aus einer DLL laden soll. Aber wenn ich das Programm starte, passiert überhaupt nix. Das Programm kann ich dann nur noch über den Task-Manager schließen. Kann mir einer sagen, wo hier der Fehler ist:
-Profan² 5.0-32
-WindowsXP Professional

$P+
SetLFN 1

Declare Dialog%,Encrypt%,Decrypt%,Help%,Abort%,End%,DLL%

' HIER WIRD DIE PP.DLL GELADEN
Let DLL%=@UseDLL("pp.dll")

' HIER WIRD DER DIALOG AUS DER DLL GELADEN. DER DIALOG HAT DEN NAMEN 0 IN DER DLL
Let Dialog%=@CreateExtDialog(DLL%,%HWnd,"0")

' HIER WERDEN DEN HANDLE'S DIE BUTTONS DES DIALOGES ZUGEORDNET
Let Encrypt%=@GetHandle(Dialog%,1)
Let Decrypt%=@GetHandle(Dialog%,2)
Let Help%=@GetHandle(Dialog%,3)
Let Abort%=@GetHandle(Dialog%,4)

' HIER WIRD DIE PP.DLL WIEDER FREIGEGEBEN
Let DLL%=@UseDLL("")

Let End%=0
WhileNot End%
WaitInput
If @Equ(%Key,2)
Let End%=1
ElseIf @GetFocus(Encrypt%)
Run ".\encrypt.exe"
ElseIf @GetFocus(Decrypt%)
Run ".\decrypt.exe"
ElseIf @GetFocus(Help%)
WinHelp ".\help.hlp","Informationen"
ElseIf @GetFocus(Abort%)
Let End%=1
EndIf
EndWhile
End


Florian May
Datum:06.08.02 11:25 Antwortenals Email verschicken  


Was bei mri oft schon der Fehler war, ist das er den gewählten Dateinamen nicht möchte, daher probier doch mal bei Let Dialog%=@CreateExtDialog(DLL%,%HWnd,"0") mal ein Wort wie beipsielsweise "Dialog" aus. Weiterhin kannst du den Fehler auswendig machen in dem du beispielsweise mal die Prosudren ' HIER WERDEN DEN HANDLE'S DIE BUTTONS DES DIALOGES ZUGEORDNET
rausnimmst und schaust ob das Fenster überhaupt angezeigt wird.
Weiterhin kann es auch sein, das du zwar den Filenamen in der DLL aber nicht den Filetyp angegeben hast.........


Sven Schmidts
Datum:06.08.02 11:39 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Wenn Du die DLL wieder aus dem Speicher entfernst, gelten die Handles / Zeiger nicht mehr. Wo sollen sie auch hinzeigen, wenn nichts mehr da ist? Dann solltest Du Dir angewöhnen, die Ergebnisse als DLL's nicht als INT, sondern als LONGINT zu speichern.

Mfg.
Sven Schmidts


Jörg Sellmeyer
Datum:06.08.02 12:07 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Außerdem nützt Dir UseDll("") gar nix.
Zitat aus der Profanhilfe:
Um die DLL zu entfernen ist der Befehl FREEDLL zu verwenden.
Ansonsten liegt`s wohl an dem, was Sven sagt. Die Dll also erst
am Ende des Programms wieder freigeben.
Gruß
Jörg


Martin Pohl
Datum:06.08.02 12:33 Antwortenals Email verschicken (martin_pohl@msn.com) 


Hallo, Jörg!

Ich habe Profan² 5.0-32, da gibt es den Befehl FreeDLL nicht. @UseDLL("") wird stattdessen verwendet.


Martin Pohl
Datum:06.08.02 13:08 Antwortenals Email verschicken (martin_pohl@msn.com) 


Komisch, in der Profan²-Hilfe ist ein Beispiel zum Anzeigen des FILEOPEN-Dialoges aus Pofan²:

@CreateExtDialog(%HInstance,%HWnd,"FILEOPEN")

Der Dialog wird aber auch nicht bei mir angezeigt. Was ist das los?


Jörg Sellmeyer
Datum: 06.08.02 14:43 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Martin,
Zumindest in meiner 5.0 Profan.exe ist kein Dialog "Fileopen" vorhanden. Dafür Editbox1 und ...2
Lisbox1 - ...8 und "LDialog" sowie "Input".
Falls Du ihn noch nicht hast, kann ich Dir den Reshacker empfehlen:
http://www.users.on.net/johnson/resourcehacker/
Gruß
Jörg


 Zurück zur Übersicht