Shellexecute - wie Return-Werte bekommen?
-
So, das ist also mein erstes Programm.
Problem ich habe statt des Rückgabewertes rueckgabe natuerlich nun ein Rueckgabewert fuer ShellExecute. Das bedeutet, die Variable rueckgabe sollte natürlich eigentlich die Variable sein, die aus Programm 2 zurückgegeben wird.#include <iostream.h> #include <stdlib.h> #include <shlwapi.h> #include <shlobj.h> using namespace std; main() { char k[256]; cout << "Geben Sie eine Zahl ein: "; cin >> k; HINSTANCE rueckgabe = ShellExecute(0,"open","D:\\studium\\Programmierung\\c++\\3 - Shellexecute\\3a - shellexecute2.exe",k,0,SW_SHOW); cout << "\nDas Ergebnis: " << int(rueckgabe) << "\n"; system("Pause"); }
Und das eben mein zweites:
#include <iostream.h> #include <stdio.h> using namespace std; int main( int argc, char* argv[]) { int d; cout << argc << " Variablen wurden uebergeben.\n"; cout << "Die erste Variable war der Dateiname,\ndie zweite Variable lautet: " << argv[1] << "\n"; cout << "\nTippen Sie eine Zahl ein: " cin >> d; return d; system("PAUSE"); }
Es ist wirklich nichts besonderes. Und ich versuche mir nur damit - wenn vl. auch umständlich, C++ anzueignen. Es ist wirklich nur zur Übung gedacht, auch wenns im Ordner Studium liegt.
Danke
MfG
Kai
-
Hi,
C++ ist nicht so geeignet dafuer, sie einfach nur ueber das Forum zu lernen. Dieses Forum hier ist in Ordnung, wenn Du weisst, wer was drauf hat und Dir die richtigen Codes aneignest, aber es steht einfach zu viel Quatsch ueberall.
Daher solltest Du Dir ein geeignetes Buch zulegen und es lieber so lernen.
Allein deine main-Funktion schreibt man so nicht und iostream.h benutzt man nicht, da veraltet. HINSTANCE ist eine Art Handle, du erhaelst da nicht den Errorcode und die Ausgabe ergibt dann wohl kaum Sinn. Das ist aber schon WinAPI-spezifisch und gehoert z.B. auch nicht mehr zum C++-Standard, das solltest Du z.B. auch trennen.
Auch char-Arrays nutzt man in C++ nur aus Kompatibilitaetsgruenden oder fuer Konstanten etc.
Du siehst, da gibt es sehr viel, was man beim Zusammensuchen falsch machen kann. Wenn Du gewisse Grundlagen hast, liefert Dir das Forum aber sehr nuetzliche Zusatzinfos und gute Diskussionen.
-
KVB schrieb:
So, das ist also mein erstes Programm.
[...]
Es ist wirklich nichts besonderes. Und ich versuche mir nur damit - wenn vl. auch umständlich, C++ anzueignen. Es ist wirklich nur zur Übung gedacht, auch wenns im Ordner Studium liegt.
Ich habe (von Anfang an) das Gefühl, daß das gar nicht das ist, was Du wirklich willst.
Vielleicht möchtest Du erst mal nur EIN Programm schreiben, daß eine main-Funktion hat, aus der dann nach Eingabe von Werten eine im selben Programm befindliche Rechenfunktion aufgerufen und das Ergebnis zurückgegeben wird?Zumindest wäre eine solche Herangehensweise imho die richtige für einen C/C++ - Neuling.
-
Belli schrieb:
Vielleicht möchtest Du erst mal nur EIN Programm schreiben, daß eine main-Funktion hat, aus der dann nach Eingabe von Werten eine im selben Programm befindliche Rechenfunktion aufgerufen und das Ergebnis zurückgegeben wird?
Zumindest wäre eine solche Herangehensweise imho die richtige für einen C/C++ - Neuling.
Also das, dachte ich bis jetzt eigentlich, bringe ich hin. Nur, dass nun alles veraltet ist.
Ich hab ein Buch, allerdings ist das von anno 1995 oder so. Deswegen: es funkioniert zwar alles, aber es ist sicher nicht das modernste. Ich werd mir wohl die Zeit für ein Tutorial nehmen.
Danke
Kai
-
Kein Tutorial (Stichwort Augenkrebs http://www.stupidedia.org/stupi/Augenkrebs).
Lieber ein modernes, gutes Buch. Für Empfehlungen benutze die Forensuche.
-
Naja, Du schriebst ja, Du bist neu bei C++ und willst es Dir erst mal aneignen. Und da ist IPC vielleicht nicht das beste Einstiegsthema, vor allen Dingen, da es weniger mit C/C++ zu tun hat, als mit plattformabhängigen API's.
-
Belli schrieb:
Naja, Du schriebst ja, Du bist neu bei C++ und willst es Dir erst mal aneignen. Und da ist IPC vielleicht nicht das beste Einstiegsthema, vor allen Dingen, da es weniger mit C/C++ zu tun hat, als mit plattformabhängigen API's.
Seh ich ja auch ein, wenn es so schwierig ist. Weiß man ja vorher nicht.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Erstens könntest du, wie schon vorgeschlagen, den Weg über die Zwischenablage gehen, zweitens kannst du dir, da dir ja der Name des anderen Prozesses bekannt ist, einen Handle auf diesen Prozess besorgen und anschließend GetExitCodeProcess
aufrufen (http://msdn.microsoft.com/en-us/library/ms683189(VS.85).aspx).
-
VF schrieb:
Erstens könntest du, wie schon vorgeschlagen, den Weg über die Zwischenablage gehen, zweitens kannst du dir, da dir ja der Name des anderen Prozesses bekannt ist, einen Handle auf diesen Prozess besorgen und anschließend GetExitCodeProcess
aufrufen (http://msdn.microsoft.com/en-us/library/ms683189(VS.85).aspx).Dazu benötige man keine Tricks und keinen Prozessnamen (der ja auch nicht eindeutig sein muss).
Man nimmt einfach ShellExecuteEx und bekommt ein Prozess Handle. Dann nimmt man das von Dir erwähnte GetExitCodeProcess.