interaktion zwischen 2 programmen

so, ich hab das jetz mit CreateProcess() gemacht, funktioniert einwandfrei.

hab statt system() folgendes geschrieben:

Code:
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if(!CreateProcess(NULL, "Test.exe", NULL, NULL, FALSE,
	 0, NULL, NULL, &si, &pi))
ShowMessage("ERROR_CREATE_PROCESS");

nach dem Quelltext des Servers steht dann noch:

Code:
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

noch eine letzte Frage zu diesem Thema:
Kann mir jemand mal erklären, wozu man die blauen Quelltextzeilen braucht?
(ohne denen funktionierts auch)

P.S.: Den Code hab ich aus der msdn übernommen
 
ZeroMemory füllt den angegebenen Speicherbereich mit Nullen. Sonst steht da erstmal irgendwelcher Unsinn in den Membervariablen der Struktur. Das geht schneller, als die Membervariablen einzeln mit 0 oder NULL zu initialisieren.
In 'si.cb' muß die Größe der Struktur stehen. ich weiß allerdings nicht, ob man die Länge der Zeichenketten-Members der Struktur mit einbeziehen muß, wenn etwas darinsteht. Bei mir sind sie leer, daher stimmt das mit sizeof(si) auf jeden Fall.
P.S.: Wenn Du mir gleich gesgt hättest, daß Du den Client nur vom Server aus starten willst, hätte ich Di den Code gleich gegeben! :)
 
...da hätte ich allerdings nich viel gelernt dabei, hätte ich deinen Code genommen. Verstanden hätte ich den bestimmt auch nicht...
hast mir aber trotzdem sehr geholfen, danke!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück