[BB] Ausgabe von BB in den Createprocess stream!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

naibaf7

Betreff: [BB] Ausgabe von BB in den Createprocess stream!

BeitragDi, Apr 15, 2008 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

Wie muss ich das anstellen, wenn ich ein BB programm schreiben will, dass Daten an den Createprocess() stream schickt. Also so:

Programm 1:
Code: [AUSKLAPPEN]

repeat
 SchreibeInDenRückgabestream bild
until keyhit(1)


Programm 2:
Code: [AUSKLAPPEN]

stream = createprocess()
repeat
 drawimage stream,0,0
until keyhit(1)


Ich denke, da bräuchte man doch ne DLL für. Etwas hab ich in C++ (Visual) auch schon versucht:
Code: [AUSKLAPPEN]

#include <iostream>

#define DLL extern "C" __declspec(dllexport)


DLL int StreamOUT(int Data)
{
   std::cout << Data;
   return 0;
}


Alles was mit der DLL aber passiert, ist, dass der BB Debugger abstürzt!

Kann da jemand helfen? Es muss diese Methode sein, was anderes geht leider nicht.
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master
 

ChristianK

BeitragDi, Apr 15, 2008 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Es muss diese Methode sein, was anderes geht leider nicht.

Diese Methode kann gar nicht funktionieren, weil sie aus Sicherheitsgründen von Windows nicht zugelassen wird.
Das Handle des Bildes ( "bild" ) ist ein Zeiger auf den Speicherbereich, in dem sich das Bild befindet. Du schickst an das andere Programm also nur die Speicheraddresse. Das 2. Programm kann damit aber nichts anfangen, da ein Programm nicht ohne weiteres auf den Speicher eines anderen Programmes zugreifen darf. Was du brauchst, ist "Shared Memory" oder etwas ähnliches. Zu "Names Pipes" hat EPS mal eine Funktion geschrieben, kannst ja mal danach suchen.

Und was die DLL angeht: std::cout hat nichts mit dem Process Stream zu tun. Das Programm stürtzt ab, weil die Funktion nicht __stdcall als Aufrufkonvention benutzt -> Stack Overflow.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

naibaf7

BeitragDi, Apr 15, 2008 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
oh ok...

dann halt suche nach shared memory

named pipe hab ich schon gefunden, das hat mir aber iwie net gefallen...

ehm,... ich hab nun im englischen forum gesucht und auch dort lässt sich nichts finden (zu shared memory, nur so komisches mutex Zeugs...)

Kann mir mal jemand ne kurze anleitung und so geben zu "Shared Memory"? Also kein Named Pipe und kein Mutex Zeugs!!
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group