Speicher verwaltung + Dll problem
Übersicht

![]() |
tftBetreff: Speicher verwaltung + Dll problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.......
Habe auch wider mal ne Frage........... In welchem Modus wird der Speicher bei den Bank Befehlen erzeugt? Die frage ist in sofern interesant. Da Dll`s scheinbar unter XP auf keine Adresse die in den .dcl liste als (*, Zeiger) declariert ist. Schreibend zugreifen können. Zumindestens nicht wirksam. Weis einer den Code mit dem ich Shared Mem Allocieren kann. Die Api wird da weiterhelfen. Aber ehe ich mir die Suche antuhe. Vertraue ich darauf. Das hir einer was weis. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
brauchst kein API - nimm malloc()
in decls: alpha32%(buffer1*,width1,height1,pitch1,buffer2*,width2,height2,pitch2,buffer3*,px,py,mode,alpha):"alpha32@52" in c++ #define BBDECL extern "C" __declspec(dllexport) #define BBCALL __stdcall BBDECL int BBCALL alpha32(int buffer1[], int width1, int height1, int pitch1, int buffer2[], int width2, int height2, int pitch2, int buffer3[], int px, int py, int mode, int alpha1) { } wenn du "const int buffer1[]" machst, dann kannst du nur lesen wenn du mit bb eine bank übergibst, dann muss die existieren!!! |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.....
wie das in der .decl sein muss ist schon klar. Aber In BB gibt es kein Malloc(). Oder habe ich da was Falsch ferstanden? |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
da machst du dann einfach eine bank
bank=createbank(1000) |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Nee Du kannst den Speicher via WinAPI allokieren. Das geht via GlobalAlloc-Funktion und um den wieder freigeben zu können geht das glaube mit GlobalReAlloc. http://purebasic.de/files/win32.zip Saugt Dir mal die Hilfe mfg olli |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi....
@TheShadow weil der Bank Befehl kein Shared Ram einrichtet. Wenn jetzt eine DLL auf eine übergebene Adresse einen wert einschreibt. passiert unter XP garnichts. Da für jede gestartete Aplication ein eigener Adressraum generiert wirt. Das ist auch der grund warum XP eigentlich nicht mehr Abstürtzt. Eine beschreiben der Adresse null zum beispiel kann dann nicht mer den Schaden anrichten wie früher. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
erklär mir dann warum meine transparenzroutine auch unter xp funktioniert - ich übergebe memory-addressen und es klappt... ich lese in meinem Beispiel auf bank und schreibe in vram (kann auch in bank schreiben) | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group