Seite 2 von 4

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

Verfasst: 05.12.2009 02:35
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

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

Verfasst: 05.12.2009 11:06
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...

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

Verfasst: 05.12.2009 11:22
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

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

Verfasst: 05.12.2009 11:32
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

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

Verfasst: 05.12.2009 12:10
von Kiffi
@Mok:

vielleicht hilft das weiter:

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

Grüße ... Kiffi

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

Verfasst: 05.12.2009 12:14
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

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

Verfasst: 05.12.2009 15:52
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

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

Verfasst: 05.12.2009 19:08
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

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

Verfasst: 05.12.2009 19:58
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

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

Verfasst: 05.12.2009 20:37
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)