Wywołanie programu okienkowego przez program konsolowy

0

Witajcie
Pomyślałem, że napiszę sobie prosty program okienkowy, którego jedynym celem będzie zmiana wartości zmiennej logicznej, która przydałaby się w innych programach projektu.
Od razu pojawił się pewien problem, mianowicie, jak połączyć program okienkowy i konsolowy, czy w ogóle się da i czy ma to sens?
Próbowałem połączyć pliki projektu przez plik nagłówka .h, zaś sam program okienkowy wywołać w programie konsolowym przez funkcję system(). (Abstrahując, że jest to zły pomysł, ponieważ przy jednym projekcie nie istnieje plik .exe dla każdego pliku składowego z osobna [przynajmniej w Code::Blocks], jestem nowy i nie wiem jak inaczej można by to zrobić)

plik aplikacji konsolowej:

#include<iostream> 
#include"projekt\wybor.h"

bool mm=false; //zmienna, którą przenoszę do aplikacji okienkowej (program do niej nie ma zastrzeżeń, wiec uzupełnienie o inny kod chyba niepotrzebne) 

int main() 
{ 
system("przyklad4.exe"); //próba wywołania całego programu Win API 
return 0; 
} 

EDIT:
Jest i biblioteka "windows.h", nie w tym rzecz.
Próbowałem wywołać cały oddzielny program okienkowy (Win API, te sprawy).
Jakby to... Mamy dwa programy (działające). To, co chciałbym zrobić:
Win API:
odpala się na zawołanie>>nadaje wartosc zmiennej bool mm>>zamyka się
Console Appliocation:
Wywołuje program Win API>>czeka aż się wykona>>leci dalej z kodem

Dałbym cały kod obu plików, ale to się mija z celem. (I tak, spokojnie, napisać program okienkowy sam w sobie zrobić bym umiał, nie w tym rzecz.
Ogólnie rzecz ujmując, to plik z programem okienkowym ma odpowiadać tylko za zmianę wartości zmiennej logicznej.

1

Szukasz hasła:
IPC Inter Process Communication
Są różne biblioteki itp. rzuć okiem. tu np. qt https://doc.qt.io/qt-5/ipc.html
edit: Ale przyznam że do końca cię nie rozumiem.

1
system("przyklad4.exe"); //próba wywołania całego programu Win API

Skoro wywołujesz to w taki sposób to co za problem przekazać to jako argument programu? Tzn. np.

system("przyklad4.exe 1");

1

Może to głupie pytanie, ale co to robi wówczas?

Wówczas możesz się odnieść do przekazanego argumentu przez argc i argv:

int main(int argc, char *argv[])
{
  std::cout << argv[1] << "\n";
}

Wtedy odpalając program z argumentem program.exe foobar, dostaniesz na wyjściu foobar.

argc to liczba przekazanych argumentów do programu (włącznie z nazwą programu), argv to tablica przekazanych argumentów (typu char *).

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