Änderung bei CallFunction()?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Änderung bei CallFunction()?

Beitrag von Delle »

Hallo,

gab es irgendwie eine Änderung bei CallFunction()?

Code: Alles auswählen

If OpenLibrary(0, "AVICAP32.DLL") 
hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 10, 10, 320, 240, hWnd, 0) 
Da meckert er nämlich neuerdings rum, dass eine Zahl statt einem String erwartet wird...

Wenn ich statt "BLUBBER" nun eine 0 reinschreibe, dann geht es komischerweise.

Wieso ging das also mit den alten PB-Versionen und jetzt auf einmal nicht mehr?

Thanks,
Delle
PB 6.21 | Win 11
Benutzeravatar
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: Änderung bei CallFunction()?

Beitrag von ts-soft »

Weil callfunction... nur noch aus kompatibilitätsgründen vorhanden sind. diese sollten nicht
mehr verwendet werden! Dafür die wesentlich besser geeigneten Prototypes nutzen!

Callfunction... unterstützt nur Integer, die automatisch Umwandlung eines strings in seinen Pointer
wurde entfernt. String also mit @bla oder @"bla", bzw. Prototypes nutzen!

Ich nutze bereits seit erscheinen von PB 4 kein CallFunction mehr und würde es auch jedem anderen
empfehlen, dies nicht zu nutzen da bei callfunction die meisten variablentypen nicht übergeben werden
können und der Compiler die korrekte Anzahl, den korrekten Typ nicht prüfen kann.

Gruß

Thomas
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.
Bild
Antworten