Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rückgabewert eines c Programmes verwenden (https://www.delphipraxis.net/105382-rueckgabewert-eines-c-programmes-verwenden.html)

ferby 20. Dez 2007 22:45


Rückgabewert eines c Programmes verwenden
 
Hallo,

ich habe mal eine Frage zum Rückgabewert eines C-Programmes.


Und zwar hat ja die Main Funktion in C einen Rückgabewert,
ist es möglich in Delphi ein C programm (die fertige exe) aufzurufen, und den Rückgabewert zu bekommen?

also in C schaut das Prog so aus:

Delphi-Quellcode:
int main()
{
return 10;
}

mkinzler 20. Dez 2007 22:46

Re: Rückgabewert eines c Programmes verwenden
 
Wie rufst du den das Programm auf?

ferby 20. Dez 2007 22:53

Re: Rückgabewert eines c Programmes verwenden
 
Hello,


daweil so

Delphi-Quellcode:
 ShellExecute(Application.Handle,'open', PChar('c_programm.exe'),Nil, Nil, SW_NORMAL);

mkinzler 20. Dez 2007 22:58

Re: Rückgabewert eines c Programmes verwenden
 
http://www.delphipraxis.net/internal...t.php?t=124269

ferby 20. Dez 2007 23:09

Re: Rückgabewert eines c Programmes verwenden
 
Hab ich das jetzt richtig verstanden, das der Rückgabewert der Funktion ShellExecute mir den Rückgabewert der main Funktion liefert?

grenzgaenger 20. Dez 2007 23:15

Re: Rückgabewert eines c Programmes verwenden
 
es gibt keinen rückgabewert der funktion main. es gibt 'n beendigungscode des der funktion an das betriebssystem. das ist unabhänig von der verwendeten programmiersprache... geht auch in pascal :-)

hat man früher dafür verwendet um die batchdateien zu steuern ...

gibt das programm keinen expliziten code mit, wird i.d.R. der wert 0 an das BS zurückgegeben...

ferby 20. Dez 2007 23:20

Re: Rückgabewert eines c Programmes verwenden
 
ich checks nicht, is es jetzt möglich oder nicht???

Delphi-Quellcode:
showmessage(inttostr(ShellExecute(Application.Handle,'open', PChar('test.exe'),Nil, Nil, SW_NORMAL)));
hier kommt immer 42 zurück, egal was ich im c programm eingebe....

grenzgaenger 20. Dez 2007 23:22

Re: Rückgabewert eines c Programmes verwenden
 
Zitat:

Zitat von ferby
Hab ich das jetzt richtig verstanden, das der Rückgabewert der Funktion ShellExecute mir den Rückgabewert der main Funktion liefert?

nein, das ist nicht so. ein blick in die OH genügt. shellexecute liefert einen eigenen returncode zurück, der returncode des programms kann aber ein gänzlich anderer sein... d.f. ist das nicht der rc den du suchst

Neotracer64 20. Dez 2007 23:45

Re: Rückgabewert eines c Programmes verwenden
 
GetExitCodeProcess()

Christian Seehase 21. Dez 2007 18:05

Re: Rückgabewert eines c Programmes verwenden
 
Moin ferby,

um an den Return-Code zu kommen, müsstest Du das Programm mit ShellExecuteEx oder CreateProcess aufrufen (dann klappt auch der Tip von NeoTracer)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz