Seite 6 von 13
Verfasst: 29.03.2009 03:02
von edel
Josef Sniatecki hat geschrieben:[...]
Da steht ausdürcklich, dass die Kernel32 Lib nicht für PB 4.00 optimiert
wurde. Ich habe zwar keine Ahnung was das nun bedeutet, jedoch kann
ich mir denken, dass das der Grund für ein Fehler bei mir ist.
Auch der Code da oben funzt bei mir nicht. Scheint also an PB bzw. an
der DLL zu liegen, die seit 4.00 nicht aktualisiert wurde.
Und gerade ich habe vieleicht ne Windows Version, die nicht damit klar
kommt.
Es gibt keine optimierten Windows libs fuer PB. Die Lib ist noch aus win98
Tagen. Da gab es den Befehl noch nicht (erst ab win2000), deshalb muss es
dynamisch geladen werden.
Welchen Weg man nun aber am Ende nimmt, ist fuer die Funktion aber
egal. Das es nicht funktioniert liegt an deinem 64 Bit OS.
Verfasst: 29.03.2009 03:13
von Bisonte
ts-soft hat geschrieben:RSBasic hat geschrieben:
Kann jemand das bestätigen oder weiß jemand zufällig, wieso das so ist?
Ich vermute mal, Bisonte hat die WinAPI Library als Tool in die IDE integriert,
da schmiert das Programm nach einem RunProgram ab, warum auch immer.
Dasselbe Problem habe ich mit dem TemplateExplorer, so das ich den einfach
beende, damits nicht Kracht

Äh nein. Nix in der IDE installiert (Nur dein ExtraTools

)
Also WinApi Library.exe gestartet, Snippet ausgesucht, angeklickt,
Code im Editorfenster erscheint, PB-IDE öffnet sich (oder ist schon offen),
neuer Tab wird geöffnet, Snippet wird eingefügt. WinApi Library.exe verliert
sich in den Tiefen des Nirwana....
Verfasst: 29.03.2009 13:21
von RSBasic
@Bisonte
>(oder ist schon offen)
Und das ist anscheinend die Ursache.
Wenn ich bei mir PB auch vorher öffne, dann mein Programm starte, einen Code auswähle und dann auf den Button "PureBasic" klicke, dann schmiert bei mir das Programm auch ab, warum auch immer (mit dem RunProgram() ist doch das gleiche, als ob man manuell mit der Maus eine Datei gestartet hat oder?)
Das versteh' ich irgendwie nicht.
Aber wenn PB nicht gestartet ist, dann funktioniert mein Programm ohne Probleme.
Verfasst: 29.03.2009 13:57
von Falko
Nein, das liegt daran, das deinem Programm nicht bekannt ist, wo das Libraryverzeichnis ist. Ich habe versucht mit Rechtsklick per Drag & Drop die WinApiLibrary in Start Programme zu ziehen. Also eine Verknüpfung. Dann erst wenn du aus Start das Symbol für dein Programm startest, hängt sich dein Programm auf. Nun habe ich
einfach im gleichen Verzeichnis eine Verknüpfung gemacht und diese
dann im Start Programm verschoben. Grund. Dort ist das WinApiLibraryverzeichnis bekannt.
Damit funktioniert dann auch bei gestarteter PB-IDE die Sourceübernahme.
Ich hoffe ich konnte hiermit einen guten Tipp geben.
Also bei mir funktioniert es so wunderbar
Gruß, Falko
Verfasst: 29.03.2009 16:28
von Bisonte
Jetzt hab ich das nochmal reproduzierbar gemacht :
Wenn WAL.exe (WinApi Library.exe) gestartet wird, BEVOR die IDE geöffnet wurde,
kann ich ohne Absturz alle möglichen Snippets per Klick übertragen.
Wenn aber WAL.exe gestartet wird, NACHDEM die IDE geöffnet wurde,
gibts den Absturz.
Ebenso wenn WAL.exe einmal funktionierend gelaufen ist und ich das beende,
und später nochmal starte... Absturz.
Verfasst: 29.03.2009 16:42
von Falko
Bisonte hat geschrieben:Jetzt hab ich das nochmal reproduzierbar gemacht :
Wenn WAL.exe (WinApi Library.exe) gestartet wird, BEVOR die IDE geöffnet wurde,
kann ich ohne Absturz alle möglichen Snippets per Klick übertragen.
Wenn aber WAL.exe gestartet wird, NACHDEM die IDE geöffnet wurde,
gibts den Absturz.
Ebenso wenn WAL.exe einmal funktionierend gelaufen ist und ich das beende,
und später nochmal starte... Absturz.
Und kannst du das auch mit einem, im selben Verzeichnis, verknüpften WAL.exe (WinApi Library.exe) reproduzieren?
Verfasst: 29.03.2009 16:52
von RSBasic
Ich hab alles versucht (per RunProgram() sowie ShellExecute_()), aber leider stürzt mein Prog jedesmal ab.
Verfasst: 29.03.2009 17:05
von RSBasic
Ich hab einen OnError eingebaut und bekomme folgende Absturzmeldung:
A program error was detected hat geschrieben:Error Message: Invalid memory access
Error Code: -1073741819
Code Address: 4260671
Target Address: 8
Sourcecode line: 625
Register content:
EAX = 0
EBX = 45351510
ECX = 3940528
EDX = 2
EBP = 1245056
ESI = 2117574361
EDI = 0
ESP = 1245044
Sourcecode line: 625 hat geschrieben:EventID=WaitWindowEvent()
Verfasst: 29.03.2009 17:08
von Bisonte
Falko hat geschrieben:Und kannst du das auch mit einem, im selben Verzeichnis, verknüpften WAL.exe (WinApi Library.exe) reproduzieren?
Ich glaub ich weiss nicht genau was du damit meinst...
Also ich habe jetzt mal eine Verknüpfung erstellt, und diese gestartet.
genau das gleiche. Auch wenn ich diese in den PB-Install Ordner kopiere und dort starte...
Oder hab ich da was missverstanden ?
Edit: hab mal das textfile was windows als Bericht wegschicken will rausgepult...
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="WinAPI Library.exe" FILTER="GRABMI_FILTER_PRIVACY">
<MATCHING_FILE NAME="Aktualisierung.exe" SIZE="44544" CHECKSUM="0x3C49AF1D" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="03/28/2009 11:11:28" UPTO_LINK_DATE="03/28/2009 11:11:28" />
<MATCHING_FILE NAME="WinAPI Library.exe" SIZE="78336" CHECKSUM="0xF205831E" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="03/28/2009 20:57:11" UPTO_LINK_DATE="03/28/2009 20:57:11" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
<MATCHING_FILE NAME="kernel32.dll" SIZE="1063424" CHECKSUM="0x2E7379C2" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="Client-DLL für Windows NT-Basis-API" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Betriebssystem Microsoft® Windows®" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. Alle Rechte vorbehalten." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x106523" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 02:21:52" UPTO_LINK_DATE="04/14/2008 02:21:52" VER_LANGUAGE="Deutsch (Deutschland) [0x407]" />
</EXE>
</DATABASE>
Seh ich das richtig, dass die Aktualisierung.exe etwas damit zu tun hat ?
Verfasst: 29.03.2009 17:29
von Falko
@Bisonte
Du hast es schon richtig gemacht, wie ich das gemeint hatte. Im Vista funktioniert es mit gestarteter Verknüpfung ohne Fehler. Ich habe nun
mit einem virtuellen Windows 2000 probiert. Da stürzt die WinApilib auch ab.
Ich kann mich noch erinnern, das ich ein Prob mit dem CloseHelp() hatte. Da hat mir das am Ende gesetzte CloseWindows() geholfen und der Fehler war weg.
Gruß Falko