PB 4.20 B2 Win32 - GetLastError meldet "Module not foun

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

PB 4.20 B2 Win32 - GetLastError meldet "Module not foun

Beitrag 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.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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. :?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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.
Antworten