Zwracanie wartości przez main(int argc, char* argv[])

0

Mam proste pytanie: czy mogę jakoś zdobyć informacje o zwracanej wartosci przez main()?
Np mam program licz.exe w którym wprowadzam dane o zmiennej a i b i z niego wywołuje program kwadrat a tym programie się to liczy i program zwraca mi wartość wyniki. Ale chodzi mi konkretnie o funkcję która wywolam inny program i funkcją zwróci mi wartość którą zwrócił mi program

3

Ale chodzi mi konkretnie o funkcję która wywolam inny program i funkcją zwróci mi wartość którą zwrócił mi program
A tak po ludzku?

Ogólnie to wartość zwracana przez main nie służy do przekazywania wyników obliczeń, tylko do informowania, czy program się zakończył poprawnie.

0
twonek napisał(a):

Ogólnie to wartość zwracana przez main nie służy do przekazywania wyników obliczeń, tylko do informowania, czy program się zakończył poprawnie.

Czyli nie ma szans na to żeby zwrócił mi jakąś ciekawą informację ?

4
FilipNL napisał(a):

Czyli nie ma szans na to żeby zwrócił mi jakąś ciekawą informację ?

W softłerze wszystko się da (no prawie). Niejasno to opisałeś więc będę zgadywał. Zgaduje że masz, albo chcesz mieć, dwa programy, jeden uruchamia drugi i zbiera wyniki jego pracy. To co prawdopodobnie chcesz mieć/osiągnąć to tak zwane IPC (inter process communication), technika którą implementuje się w różny sposób i wiele z tych sposobów jest opisanych w internecie. Do jej implementacji możesz użyć natywnych API systemowych albo bibliotek - np. Qt posiada klasę QProcess, która jest banalna w obsłudze jeśli ktoś wie jak obsługiwać sygnały i sloty. Wyniki obliczeń nie powinieneś przechwytywać przez wartość zwracaną przez main bo ta wartość powinna indykować czy program zakończył się sukcesem lub nie. To, w jaki sposób pobierzesz sobie wynik obliczeń z innego procesu zależy jakiej techniki/biblioteki użyjesz.

0

Właśnie o to mi chodzi :D czyli Qt, Softłer ( nie wiem co to, zgaduje że jakaś biblioteka ), czy polecasz jakaś inna bibliotekę ?

1
FilipNL napisał(a):

Właśnie o to mi chodzi :D czyli Qt, Softłer ( nie wiem co to, zgaduje że jakaś biblioteka ), czy polecasz jakaś inna bibliotekę ?

Hue hue, zawsze mam problem gdy dochodzi do odmiany angielskich słówek, dlatego albo piszę w całości tak jak się wymawia po Polsku albo używam apostrofów ;) Jeśli potrzebujesz skodzić tylko IPC to Qt to taka armata na muchę. Najlepiej wpisz frazę w google c++ ipc windows czy jakiego tam systemu używasz.

1

Jeśli chodzi o Windows to GetExitCodeProcess() Ci pomoże https://msdn.microsoft.com/en-us/library/windows/desktop/ms683189%28v=vs.85%29.aspx

Przypuszczam, że bardziej chodzi Ci o funkcję i zrealizujesz to umieszczając kod w bibliotece np. DLL dla Windows :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1