Prozedur in DLL ausführen: Invalid memory access.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von DrShrek »

Mok hat geschrieben:... aber als ich in der DLL 2 Zeilen dazugegeben habe, bekomme ich immer einen Invalid Memory Access Fehler, wenn ich DLL_OptionWindow() aufrufe. .
Wir brauchen nicht die PB Sourcen, daran haste ja nix geändert.
Wir brauchen die Sourcen zu DLL_OptionWindow() ... da haste ja 2 zeilen reingelegt
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Mok »

Dr. Shrek hat geschrieben:Wir brauchen die Sourcen zu DLL_OptionWindow()
Theorteisch habe ich die angeblich und praktisch eigentlich eh da reingetan... so quasi...
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Kiffi »

Mok hat geschrieben:
Dr. Shrek hat geschrieben:Wir brauchen die Sourcen zu DLL_OptionWindow()
Theorteisch habe ich die angeblich und praktisch eigentlich eh da reingetan... so quasi...
tscha, Theorie und Praxis. Das ist so 'ne Sache...

Bild

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Mok »

Kiffi hat geschrieben: tscha, Theorie und Praxis. Das ist so 'ne Sache...

Bild
Das gibt's doch nicht :coderselixir:
So'n Scheiß ist mir noch nie passiert...
http://em.q-soft.ch/files/get/htpA56tyB ... loaded.zip
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Kiffi »

@Mok:

vielleicht hilft das weiter:

http://www.purebasic.fr/german/viewtopi ... 56#p185456

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Mok »

Kiffi hat geschrieben:@Mok:

vielleicht hilft das weiter:

http://www.purebasic.fr/german/viewtopi ... 56#p185456
Ja ;)
Aber ich wundere mich, weil vorher hat's doch auch gefunzt... obwohl ich mehrere WaitWindowEvents() hatte (durch den DLL-Aufruf)

Edit:
Wenn ich das so mache wie du, bekomme ich IMA bei Adresse 0.
Zeile:

Code: Alles auswählen

Procedure CallDLL_HelpWindow(lDummy.l)
  hDLL = OpenLibrary(0,"op1.dll")
  CallDLL_HelpWindow = GetFunction(hDll,"DLL_HelpWindow")
  CallFunctionFast(CallDLL_HelpWindow) ;*************************************
  CloseLibrary(hDLL)
EndProcedure
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von HeX0R »

Meine Güte, wie wäre es mal mit erst in die Hilfe schauen, und dann das Board belästigen?

Code: Alles auswählen

Procedure CallDLL_HelpWindow(lDummy.l)
  If OpenLibrary(0,"op1.dll")
    CallDLL_HelpWindow = GetFunction(0, "DLL_HelpWindow")
    If CallDLL_HelpWindow
      CallFunctionFast(CallDLL_HelpWindow)
    EndIf
    CloseLibrary(0)
  EndIf
EndProcedure
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Mok »

HeX0R hat geschrieben:Meine Güte, wie wäre es mal mit erst in die Hilfe schauen
Aehm... ich hab's wie Kiffi gemacht... und sein Code steht irgendwie nicht in der Hilfe
HeX0R hat geschrieben:und dann das Board belästigen?
Wenn du ein Nachfragen belästigend findest, dann frage ich mich, warum du überhaupt hier im Forum registriert bist :|


Edit:
Wenn ich das jetzt so mache, bekomme ich wieder einen IMA bei Adresse 8

Code: Alles auswählen

Procedure CallDLL_OptionWindow(lDummy.l)
  If OpenLibrary(0,"op1.dll")
    CallDLL_OptionWindow= GetFunction(0, "DLL_OptionWindow")
    If CallDLL_OptionWindow
      CallFunctionFast(CallDLL_OptionWindow);******************
    EndIf
    CloseLibrary(0)
  EndIf
EndProcedure
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Kiffi »

Mok hat geschrieben:Aehm... ich hab's wie Kiffi gemacht...
glaub ich nicht.
Mok hat geschrieben:und sein Code steht irgendwie nicht in der Hilfe
glaub ich auch nicht.

Also hier habe ich keinen IMA.

Zeig mal Deinen Thread-Aufruf. Was passiert bei Dir nach

Code: Alles auswählen

        Case #ButtonGadget_1
in Raminf.pb?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Prozedur in DLL ausführen: Invalid memory access.

Beitrag von Mok »

Kiffi hat geschrieben:Zeig mal Deinen Thread-Aufruf. Was passiert bei Dir nach

Code: Alles auswählen

        Case #ButtonGadget_1
in Raminf.pb?

Grüße ... Kiffi

Code: Alles auswählen

        Case #ButtonGadget_1
          CallDLL_OptionWindow(Random(32)) ;was da drinne steht is ja wurscht... oder?
          If ReadFile(0,"tempConfig.prefs") ; die tempConfig zur Config machen
              ClosePreferences()
              DeleteFile("Config.prefs")
              CloseFile(0)
              RenameFile("tempConfig.prefs","Config.prefs")
              OpenPreferences("Config.prefs")
           EndIf
           PreferenceGroup("infSettings") ; und das klumpert dann auslesen
           Unit.f = ReadPreferenceFloat("UnitData",1)
           UnitName = ReadPreferenceString("UnitName","MB")
           refTime = ReadPreferenceLong("RefreshTime",500)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Antworten