Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Gui za console aplikaciju.

[es] :: C/C++ programiranje :: Gui za console aplikaciju.

[ Pregleda: 2428 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Gui za console aplikaciju.27.12.2009. u 16:51 - pre 174 meseci
Na netu ima dosta dobrih besplatnih video i audio konvertera ali su odrađeni samo kao konzole aplikacije, cak im je dostupan i njihov izvorni kod kojeg mozete modifikovati po sopstvenoj želji, a zatim ga kompajlirati za određeni operativni sistem bilo linux ili windows, ili se pak mogu skinuti gotovi bildovi za određeni OS.
Npr.: Lame MP3, FLAC, FFMpeg itd.

Zelo bih da kreiram MFC aplikaciju koja bi stajala kao GUI (graficki korisnicki interfejs) između korisnika i date kozola aplikacije pa mi je neophodan neki tutorijal koji bi mi objasnio na koji način da u okviru MFC plikacije pozovem EXE koji vrsi konverziju prosledim mu parametre i prihvatam informacije koje taj EXE vraca npr. procenat izvrsene konverzije, formate konverzije itd.
Dalibor Zdravkovic
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Gui za console aplikaciju.27.12.2009. u 17:36 - pre 174 meseci
Pogledaj CreateProcess API funkciju.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

VladimirCDT
VladimirCDT
programer
Beograd

Član broj: 220281
Poruke: 45
*.cisco.com.



+2 Profil

icon Re: Gui za console aplikaciju.28.12.2009. u 18:26 - pre 174 meseci
Ako zelis da koristis gotov .exe, onda CreateProcess. Medjutim, neces lako uspeti sa hvatanjem nekih medjurezultata (redirekcija izlaznog streama i tome slicno).
Ukoliko si spreman da se pozabavis opensource aplikacijom, onda ti je nebo granica. :)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Gui za console aplikaciju.28.12.2009. u 22:49 - pre 174 meseci
Jedan od parametara funkcije CreateProcess je i pointer na STARTUPINFO strukturu kojoj je moguće dati hendlove za input, output, i error. Onda preko pajpova čitaš s jednog, a pišeš u drugi.
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Re: Gui za console aplikaciju.28.12.2009. u 23:07 - pre 174 meseci
Znam sve sam provalio, ima ceo postupak na MSDN-u:
Creating a Child Process with Redirected Input and Output

Nego problem je sledeci:
Svaki pajp ima kraj za čitanje i drugi kraj za upsi. Po ovom tutorijalu za OUT pajp iz procesa stranu za čitanje (Read stranu) ne možeš da koristiš ako prethodno ne zatvoriš stranu za upis (Write starnu) što zanči da moraš da sačekaš da proces odradi sve pa tek onda da preuzmeš odgovor, dok se među stanja ne mogu dobiti, tako da ako želiš npr. da hvataš neki procenat obrade koju vrši tvoj proces i da taj procenat prestaviš npr. nekim loaderom u aplikaciji na ovaj način ne možeš.
Dalibor Zdravkovic
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Gui za console aplikaciju.29.12.2009. u 07:25 - pre 174 meseci
Nisam nikad radio redirekciju, pa ne znam detalje. Moguće da ne može da radi u paraleli, Windows nije Linux. Ako ne možeš da spucaš sve podatke na input, pa onda natenane da čitaš output, možda možeš nekako da čitaš stvari direktno sa ekrana.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Gui za console aplikaciju.29.12.2009. u 16:37 - pre 174 meseci
Može da se korisiti i WM_CopyData.

sample

Primer za Delphi ovde na ES-u
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Gui za console aplikaciju.29.12.2009. u 17:17 - pre 174 meseci
WM_COPYDATA OP-u ne radi posao, jer konzolne aplikacije koje on hoće da pozove nemaju handler za tu poruku (niti za bilo koju drugu WM poruku). Čovek može samo da koristi gotove konzolne aplikacije, ali ne može i da ih menja. Piše u prvoj poruci.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Gui za console aplikaciju.30.12.2009. u 06:36 - pre 174 meseci
Citat:
Mihajlo Cvetanović
WM_COPYDATA OP-u ne radi posao, jer konzolne aplikacije koje on hoće da pozove nemaju handler za tu poruku (niti za bilo koju drugu WM poruku). Čovek može samo da koristi gotove konzolne aplikacije, ali ne može i da ih menja. Piše u prvoj poruci.


Evo šta piše u prvoj poruci:

Citat:
dalibor_zdravkovic:
 Na netu ima dosta dobrih besplatnih video i audio konvertera ali su odrađeni samo kao konzole aplikacije, cak im je dostupan i njihov izvorni kod kojeg mozete modifikovati po sopstvenoj želji, a zatim ga kompajlirati za određeni operativni sistem bilo linux ili windows, ili se pak mogu skinuti gotovi bildovi za određeni OS.
Npr.: Lame MP3, FLAC, FFMpeg itd.

Zelo bih da kreiram MFC aplikaciju koja bi stajala kao GUI (graficki korisnicki interfejs) između korisnika i date kozola aplikacije pa mi je neophodan neki tutorijal koji bi mi objasnio na koji način da u okviru MFC plikacije pozovem EXE koji vrsi konverziju prosledim mu parametre i prihvatam informacije koje taj EXE vraca npr. procenat izvrsene konverzije, formate konverzije itd.



Crveno sam obojio deo koji govori da može da menja konzolnu aplikaciju. To znači da može da doda ovako nešto kao što je primer koji je uz poruku. Primer ispisuje WM_CPOYDATA u konzoli kada primi tu poruku, koju sam sebi pošalje. Primer sam pripremio sa C++Builder 2010.
Prikačeni fajlovi
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Gui za console aplikaciju.30.12.2009. u 07:45 - pre 174 meseci
Ups, u pravu si! U trendu pažljivijeg čitanja sledi i jedno pitanje. Dalibore, gde si ti to video da čitanje u parentu ne može zajedno s pisanjem? Šta ako ipak može?
 
Odgovor na temu

VladimirCDT
VladimirCDT
programer
Beograd

Član broj: 220281
Poruke: 45
*.cisco.com.



+2 Profil

icon Re: Gui za console aplikaciju.30.12.2009. u 11:19 - pre 174 meseci
Ako je Dalibor spreman da ulazi u source code, onda moze vrlo jednostavno (pretpostavljam) da nakaci GUI na ostatak i da sve iskompajlira kao jednu aplikaciju, bez potrebe da jedan proces kreira drugi i da medjusobno komuniciraju.

Ne bi me cudilo da to (jedna aplikacija) bude jednostavnije resenje nego zezanje sa dva procesa. I jedno i drugo resenje bi imali svoje za i protiv, naravno.
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Re: Gui za console aplikaciju.30.12.2009. u 12:25 - pre 174 meseci
Citat:
Mihajlo Cvetanović: Ups, u pravu si! U trendu pažljivijeg čitanja sledi i jedno pitanje. Dalibore, gde si ti to video da čitanje u parentu ne može zajedno s pisanjem? Šta ako ipak može?


Na: Creating a Child Process with Redirected Input and Output

Deo:
Code:
void ReadFromPipe(void) 

// Read output from the child process's pipe for STDOUT
// and write to the parent process's pipe for STDOUT. 
// Stop when there is no more data. 

   DWORD dwRead, dwWritten; 
   CHAR chBuf[BUFSIZE]; 
   BOOL bSuccess = FALSE;
   HANDLE hParentStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

----->// Close the write end of the pipe before reading from the         <-----
----->// read end of the pipe, to control child process execution.        <-----
----->// The pipe is assumed to have enough buffer space to hold the <-----
----->// data the child process has already written to it.                   <-----
 
   if (!CloseHandle(g_hChildStd_OUT_Wr)) 
      ErrorExit(TEXT("StdOutWr CloseHandle")); 
 
   for (;;) 
   { 
      bSuccess = ReadFile( g_hChildStd_OUT_Rd, chBuf, BUFSIZE, &dwRead, NULL);
      if( ! bSuccess || dwRead == 0 ) break; 

      bSuccess = WriteFile(hParentStdOut, chBuf, 
                           dwRead, &dwWritten, NULL);
      if (! bSuccess ) break; 
   } 
}


E sad, možda i može istovremeno, ovde kaže da ne, nisam probao.
Razlog sašto ne koristim već gotov source code: jer ne mogu da gubim dane proučavajući ga. Jednostavno uz kompajliran kod ide i DOC u kome ima svih imformacija vezanih za ulazne parametre, koji nije baš mali i zahteva dosta vremena za proučavanje. I nakon toga, mislim da je mnogo brže kreirati gui, koji kreira proces, prosleđuje parametre tom procesu i rezultate predaje korisniku, nego celokupni izvorni kod proučavati, modifikovati, smeštati u dll-ove, a zatim krerati gui aplikaciju koja poziva funkcije iz dll-ova za obradu.
Dalibor Zdravkovic
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Gui za console aplikaciju.30.12.2009. u 12:51 - pre 174 meseci
Mislim da je to samo takav primer. Pokušaj se malo poigrati :-)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Gui za console aplikaciju.

[ Pregleda: 2428 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.