Error bei DLL-Benutzung?
Übersicht

#ReaperNewsposterBetreff: Error bei DLL-Benutzung? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versuche gerade die InpOut32.dll (für den Parallelport) in BMax zu benutzten, aber irgendwie will das nicht so ganz gelingen.. :-/
Code: [AUSKLAPPEN] Global DLLHandle = LoadLibraryA("Inpout32")
Global Inp32(Port:Int)=GetProcAddress(DLLHandle,"Inp32") Global Out32(Port:Int, Value:Int)=GetProcAddress(DLLHandle,"Out32") Print Out32(888,1) Print Inp32(888) Delay 10 Print Inp32(888) Wenn ich 2mal Inp32() ausführe, gibt es immer ein "Unhandled Memory Exception Error". Ich weiß nicht warum :-/ Hat jemand eine Idee..? MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst ja auch mal darauf prüfen, ob nicht die Funktionsadressen Null sind. Wenn ja, versuchs mit "Inp32@4" und "Out32@8" als Funktionsnamen. | ||
vertex.dreamfall.at | GitHub |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ne, kommt leider immer nur, dass es eine (falsche?) Angabe ist: "Attempt to call uninitialized function pointer"
Hab bei beiden @4 und @8 ausprobiert Leider hab ich noch nicht so viel Ahnung, wie man sowas richtig macht ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Überprüft ob DLLHandle <> 0 ist.
Denn im simpelsten Fall existiert die DLL einfach nicht bzw. kann nicht geladen werden (da der Dateiname nicht vollständig ist) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, ja, hatte ich am Anfang auch so drinnen, sorry.
DLLHandle ist ungleich 0 :-/ Wundert mich, mit B3D ging das ganz einfach, ohne große Probleme: https://www.blitzforum.de/foru...hp?t=13485 Mir fällt auch gerade auf, dass die Fehlermeldung erst beim beenden des Programmes auftaucht. Code: [AUSKLAPPEN] Global DLLHandle = LoadLibraryA("InpOut32") If DLLHandle=0 Then Print "Can't load DLL";End Global Inp32(Port:Int)=GetProcAddress(DLLHandle,"Inp32") Global Out32(Port:Int, Value:Int)=GetProcAddress(DLLHandle,"Out32") Print "Out: " + Out32(888,1) Print "Inp1: " + Inp32(888) Delay 10 Print "Inp2: " + Inp32(888) 'Print "Inp3: " + Inp32(888) Print "! Delay" Delay 1000 Print "!" Wenn man Inp3 auskommentiert, gibt BMax bei mir aufeinmal garkeine Fehlermeldung mehr zurück (ohne Debugging). Ohne Inp3 gibt er die Meldung jedoch aus. Wenn alle Inp32()'s auskommentiert sind, gibt es zu mindestens keine Fehlermeldung. Ich kann auch leider nun nicht testen, ob überhaupt Out32 richtig funktioniert ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast vermutlich eine falsche ( bzw. veraltete ) DLL.
Eine neuere Version, die auch unter Win 2000/XP läuft gibt's da -> http://logix4u.net/inpout32_source_and_bins.zip |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ne, mit der geht es leider auch nicht ![]() Scheint auch die seleb Version zu sein, aber mit der alten geht es in B3D ja auch immernoch :-/ Kann es vielleicht mal kurz jemand bei sich antesten? Nur damit ich evt. ausschließen kann, dass es doch irgendwie an meinem PC liegt. Wäre nett, danke ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe den selben Fehler, wenn ich die alte Version benutze. Mit der neuen geht's! oO | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
:-/
Naja, gut... dann liegst vielleicht an meinem PC.. :-/ Seltsamm ist halt nur, dass das B3D-Programm keinen Fehler bringt.. ![]() Mal schauen, vielleichts geht es ja morgen ^^° |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Suco-XBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Just test
Code: [AUSKLAPPEN] Global Inp32(Port:Int)"win32"=GetProcAddress(DLLHandle,"Inp32") Global Out32(Port:Int, Value:Int)"win32"=GetProcAddress(DLLHandle,"Out32") Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Juhu!
Keine Fehlermeldung mehr! Danke! ![]() Geht mir alter und neuer Version ![]() ![]() MfG #Reaper ![]() (Wieder viel dazugelernt ![]() (Und nun 3 Auswahlversionen von den DLLs ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
np.
Hättest du kurz gesucht, hättest du vielleicht mein altes DLL Tutorial gefunden. Dort ist das Problem + Lösung auch beschrieben. Aber auch ich hatte ganz vergessen, dass ich dafür mal ein Tutorial schrob. ![]() Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, das Tutorial hab ich wohl übersehen ![]() MfG #Reaper ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mal wieder ein Problem:
Und zwar versuche ich diesmal ChristianK's Shortcut.dll einzubinden. Leider gibt bei mir schon CreateShortcut() immer nur 0 zurück, und ich weiß mal wieder nicht warum. Code: [AUSKLAPPEN] Global DllHandle :Int = LoadLibraryA("Shortcut")
Global CreateShortcut:Int()"Win32"= GetProcAddress(DllHandle, "CreateShortcut") Habe es nun schon mit und ohne "Win32" ausprobiert etc. Was mach ich denn nun schonwieder falsch? ![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst erst das COM initialisieren. Blitz3D macht das automatisch, deshalb hab ich es nicht erwähnt. ![]() Code: [AUSKLAPPEN] Import "-lole32"
Extern "Win32" Function CoInitialize:Int( reserved:Int Ptr ) End Extern CoInitialize( Null ) |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, danke! ![]() Das wusste ich nicht (und hab kA davon ![]() ![]() PS: Wäre das bei deiner DLL richtig: SetShortcutPath( link:Int, path$z )"Win32" Oder muss ich normale Strings benutzen? Edit: Hat sich erledigt ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group