Hallo zusammen,
ich benutze eine Funktion aus einer DLL, wobei ich CallFunction() einsetze. Das hat unter PB 4.41 gut geklappt. Aber PB 4.50 steigt in der Zeile mit CallFunction() aus und ich bekomme die Error-Meldung "Ungültiger Speicherzugriff (Schreibfehler an der Adresse 2)". Außerdem erscheint, wenn ich mit dem Mauszeiger über CallFunction() gehe, ein Tag mit folgendem Text:
Debugger: Variable nicht gefunden: 'CallFunction'.
Woran kann das liegen, ist PB 4.50 weniger "tolerant" in bezug auf Variablendeklaration?
CallFunction und PB 4.50
CallFunction und PB 4.50
PB 5.50; Win 7
Re: CallFunction und PB 4.50
Hallo Angelo,
CallFunction() ist zwar noch Bestandteil des PB-Befehlsumfanges, sollte aber nach
Möglichkeit durch Prototype() ersetzt werden.
Grüße ... Kiffi
CallFunction() ist zwar noch Bestandteil des PB-Befehlsumfanges, sollte aber nach
Möglichkeit durch Prototype() ersetzt werden.
Seltsame Fehlermeldung. Kannst Du den Code mal posten?Angelo hat geschrieben:Debugger: Variable nicht gefunden: 'CallFunction'.
Grüße ... Kiffi
a²+b²=mc²
Re: CallFunction und PB 4.50
Hallo kiffi,
ich habe praktisch aus einem C-Programm abgeschrieben:
Und das habe ich daraus in PB 4.41 gemacht:
ich habe praktisch aus einem C-Programm abgeschrieben:
Code: Alles auswählen
[DLLImport("xcontrol.dll", EntryPoint="GetDeviceInfo")]
unsafe public static extern uint GetDeviceInfo(uint* SNum);
.
.
uint inf = 0;
uint res = GetDeviceInfo(&inf);
Code: Alles auswählen
OpenLibrary(0, "xcontrol.dll")
.
.
inf = 0
erg = CallFunction(0, "GetDeviceInfo", @inf)
PB 5.50; Win 7
Re: CallFunction und PB 4.50
nix
Zuletzt geändert von Rings am 15.06.2010 15:11, insgesamt 2-mal geändert.
Rings hat geschrieben:ziert sich nich beim zitieren
Re: CallFunction und PB 4.50
Nachdem der vorherige Beitrag in "nix" geändert wurde, macht meine ursprüngliche Antwort keinen Sinn mehr. Also ändere ich sie ebenfalls in "nix" ab.
Zuletzt geändert von Angelo am 15.06.2010 17:53, insgesamt 2-mal geändert.
PB 5.50; Win 7
Re: CallFunction und PB 4.50
Also eine Prototypelösung könnte so ausschauen:
Leider kenn ich die Parameter und den Rückgabewert der Funktion nicht
Leider kenn ich die Parameter und den Rückgabewert der Funktion nicht
Code: Alles auswählen
Prototype.l GetDeviceInfo(*inf.l)
If OpenLibrary(0, "xcontrol.dll")
GetDeviceInfo.GetDeviceInfo = GetFunction(0, "GetDeviceInfo")
Else
MessageRequester("Fehler","Programm wird beendet!")
End
EndIf
inf=0
erg=GetDeviceInfo(@inf)



- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: CallFunction und PB 4.50
fast:

Code: Alles auswählen
Prototype.i GetDeviceInfo(*inf)
Define GetDeviceInfo.GetDeviceInfo
If OpenLibrary(0, "xcontrol.dll")
GetDeviceInfo = GetFunction(0, "GetDeviceInfo")
Else
MessageRequester("Fehler","Programm wird beendet!")
End
EndIf
inf=0
erg=GetDeviceInfo(@inf)

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
