Seite 1 von 1

PB 4.20 B2 Win32 - GetLastError meldet "Module not foun

Verfasst: 04.02.2008 21:53
von hardfalcon

Code: Alles auswählen

errormsg.s = Space(4000)
FormatMessage_(#FORMAT_MESSAGE_FROM_SYSTEM, #IGNORE, GetLastError_(), 0, @errormsg, Len(errormsg), #Null)
Debug errormsg

errormsg.s = Space(4000)
FormatMessage_(#FORMAT_MESSAGE_FROM_SYSTEM, #IGNORE, GetLastError_(), 0, @errormsg, Len(errormsg), #Null)
;MessageRequester("Error",errormsg)
Warum krieg ich da die Fehlermeldung "Das angegebene Modul wurde nicht gefunden", wenn der MessageRequester auskommentiert ist? Ich hab übrigens nachgeschaut, sogar wenn ich als Quellcode nur GetLastError_() verwende, krieg ich den Fehlercode 126.

Hab es übrigens auch mit deaktiviertem Profiler und deaktivertem Debugger versucht, der Fehler ist auch hier aufgetreten.

Ich verwende PB 4.20 Beta 2 sowie Windows XP.

Verfasst: 05.02.2008 08:17
von edel
Das ist doch kein Bug. Wenn intern eine DLL geladen werden soll, diese
aber nicht gefunden wird, wird dieser Fehler gesetzt.

Code: Alles auswählen

setlasterror_(0)

loadlibrary_("kernel31.dll")

If getlasterror_() = #ERROR_MOD_NOT_FOUND
	; tu was anderes	
	Debug "error"
EndIf 

Verfasst: 05.02.2008 22:19
von hardfalcon
Irgendwie kann ich deiner Argumentation nicht folgen.

Bei meinem Code wird doch keine DLL geladen. Und wenn dann trotzdem versucht wird, eine DLL zu laden, die nicht vorhanden ist, obwohl in meinem Quellcode kein entsprechender Befehl ist, dann ist das doch ein Bug. :?

Verfasst: 06.02.2008 08:42
von edel
Du benutzt ja eine WinAPI Funktion, das heisst das eine (eventuell weitere)
externe DLL geladen wird. Da dein Programm ja nicht nur aus 4 Zeilen
besteht (libs usw.) koennte es irgendwo einen Versuch geben eine DLL
zu laden, die nicht vorhanden ist. Es ist also kein Bug, hoechstens nen
Schoenheitsfehler.