WinAPI
WinAPI
Hallo,
*peinlich* - doofe Frage:
Auf dem Rechner meiner Freundin (XP) habe ich PB installiert. Allerdings funktionieren die WinAPI Funktionen nicht so, wie auf meinem Rechner (Win98)
Woran liegt das?
Liebe Grüße,
Simon
*peinlich* - doofe Frage:
Auf dem Rechner meiner Freundin (XP) habe ich PB installiert. Allerdings funktionieren die WinAPI Funktionen nicht so, wie auf meinem Rechner (Win98)
Woran liegt das?
Liebe Grüße,
Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
api
wahrscheinlich daran das bei xp die api viel mehr funktionen enthält als windows 98! 

Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
Re: api
Aber was ich auf win98 gemacht habe, läuft auf winXP fehlerhaft.roherter hat geschrieben:wahrscheinlich daran das bei xp die api viel mehr funktionen enthält als windows 98!
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Re: api
> Aber was ich auf win98 gemacht habe, läuft auf winXP fehlerhaft.
kannst Du mal ein konkretes Beispiel nennen? Dann könnten wir schauen, ob
sich bei dem entsprechenden Aufruf zwischen beiden System was verändert
hat.
Grüße ... Kiffi
kannst Du mal ein konkretes Beispiel nennen? Dann könnten wir schauen, ob
sich bei dem entsprechenden Aufruf zwischen beiden System was verändert
hat.
Grüße ... Kiffi
a²+b²=mc²
Re: api
Im Moment habe ich nur noch einen Fehler:Kiffi hat geschrieben:kannst Du mal ein konkretes Beispiel nennen? Dann könnten wir schauen, ob sich bei dem entsprechenden Aufruf zwischen beiden System was verändert hat.
Code: Alles auswählen
Buffer.s=Space(40)
GetObject_(GetClassLong_(WindowID(),#GCL_HBRBACKGROUND),40,@Buffer.s)
farbe.l=PeekL(@Buffer.s+4)
Grüße
Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
- 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
Code: Alles auswählen
BufferLength = GetObject_(GetClassLong_(WindowID(),#GCL_HBRBACKGROUND),0,@Buffer)
*Buffer = AllocateMemory(BufferLength)
GetObject_(GetClassLong_(WindowID(),#GCL_HBRBACKGROUND),BufferLength,*Buffer)
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.

- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
@ts-soft: Hab zwar grad kein PB zur Hand, aber kann man mit den aktuellen PB-Versionen überhaupt noch Memory freigeben? Ich dachte, die Memory-Nummern (also z.B. #Memory) seien schon vor längerer Zeit abgeschafft worden, und PB würde das jetzt alles automaisach besorgen... Bitte korrigiert mich, wenn ich falsch liege...
//EDIT: ach nee, hab grad auf PureArea.net nachgeschaut, FreeMemory(*MemoryID) gibts trotzdem. Wundert mich aber, wie er da die Länge des zu freeenden Buffers rausfinden will... früher war das doch immer FreeMemory(#Memory), oder etwa nicht?
//EDIT: ach nee, hab grad auf PureArea.net nachgeschaut, FreeMemory(*MemoryID) gibts trotzdem. Wundert mich aber, wie er da die Länge des zu freeenden Buffers rausfinden will... früher war das doch immer FreeMemory(#Memory), oder etwa nicht?

- 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
Zum freigeben benutzt Du den MemoryPointer von AllocateMemory
Code: Alles auswählen
MyMemory = AllocateMemory(100)
; tu was
FreeMemory(MyMemory)
; oder so
*MyMemory = AllocateMemory(100)
; tu was
FreeMemory(*MyMemory)
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.

- 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
Code: Alles auswählen
MyMemory = AllocateMemory(100)
; tu was
Debug GlobalSize_(MyMemory)
FreeMemory(MyMemory)
MEM = AllocateMemory(100)
Debug GlobalSize_(MEM)
MEM = ReAllocateMemory(MEM, 200)
Debug GlobalSize_(MEM)
FreeMemory(MEM)
Debug GlobalSize_(MEM)
FreeMemory(-1)
Debug GlobalSize_(MEM)

Das zweite Beispiel verdeutlicht, was es mit FreeMemory in PB so auf sich hat

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.
