Ausführen eienr Applikation



  • Hallo, ich versuche gerade eien Applikation zu bauen, welche mittels einer GUI Text und Paswort abfragt und diese dann per gpg entschlüsselt.

    Ich habe mittels Visual C++ 2005 Express schon eine gui zusammen bekommen.

    Jedoch weis ich nicht, wie ich in C++ ein Programm ausführen kann.

    Ich habe hier mal folgenden Beipspielcode in PHP, welcher das geforderte erledigt:

    putenv('GNUPGHOME='.$gpg_path);
    
     $descriptorspec = array(
       0 => array('pipe', 'r'),  // stdin is a pipe that the child will read from
       1 => array('pipe', 'w'),  // stdout is a pipe that the child will write to
       2 => array('pipe', 'w') // stderr is a file to write to
     );
    
     $cwd = $pfad;
    
     $content = 'Ddddddddddddddddddd';
     $passwd  = 'geheim';
    
     $parameter.=' --decrypt';
     $parameter.=' --armor '.$pfad.$zw;
    
     $process = proc_open('gpg '.$parameter, $descriptorspec, $pipes);
    
     if (is_resource($process)) 
     {
       list($stdin, $stdout, $sterr) = $pipes;
    
       // den verschlüsselten String ein streamen
       fwrite($stdin, $content);
       $content = '';
    
       $tmp = '';
       while (!feof($stdout))
        $tmp.=fgets($stdout);
    
       if (strpos($tmp, 'Geben Sie die Passphrase ein:')!==false)
       {
        fwrite($stdin, $passwd);
    
        $tmp = '';
        while (!feof($stdout))
         $tmp.=fgets($stdout);
    
        if (strpos($tmp, 'Geben Sie die Passphrase ein:')!==false)
        {
         $content = $tmp;
        } else {
         $content='Passwort flasch';
        }
        unset($tmp);
        fclose($stdin);
        fclose($stdout);
        fclose($sterr);
    
       } else {
        fclose($stdin);
        fclose($stdout);
    
        while (!feof($sterr))
         $content.=fgets($sterr);
    
        fclose($sterr);
       }
    
       $return_value = proc_close($process);
     }
    

    PS bitte auch die benötigten bibliotheken bei schreiben.. bin absoluter C++ Anfanger (bisher nur kleien Konsolen Aplikationen geschrieben)



    • 1. Wir sind hier im MFC Forum - Versuche es mal in Webzeugs
    • 2. Meines Wissens kann Visual C++ 2005 Express nicht PHP auswerten, denn
    • 3. PHP ist nicht C++, sondern
    • 5. nur eine "Sprache"
      die auf dem Webserver ausgeführt wird.

    Mit freundlichen Grüßen
    Rhombicosidodecahedron



  • So, und jetzt lesen wir die Frage einfach nochmal, vielleicht verstehen wir sie ja beim zweiten Mal 🤡



  • GreenRover schrieb:

    Jedoch weis ich nicht, wie ich in C++ ein Programm ausführen kann.

    - CRT: spawn / _execl / system
    - WinAPI: CreateProcess / ShellExecute
    - C++/CLI: System::Diagnostics::Process::Start



  • Danke @ Jochen.

    Ich vermute mal, das CreateProcess am ähnlichsten sein dürfte oder?

    Ich kann aber igent wie kein Anwendungsbeipspiel dafür finden.
    Nur das: http://msdn2.microsoft.com/en-us/library/ms885182.aspx
    Aber das hilft mir noch 0 weiter.

    Hat villeich noch jemand ein kleines code beispiel für mich.







  • soory ich lese und probier schon wieder fast ein tag und bekomme es einfach nicht zustande...

    kann mir nicht einer den oben geposteten code schnell auf C++ übersetzen?

    währe echt dankbar.

    EDIT:
    Ich habe zwar schon ein paar tutorials durch wie diese:
    http://www.catch22.net/tuts/undoc01.asp
    Jedoch bekomm ich da immer nur folgenden Fehler.
    fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

    Diese Header Datei wird aber in sehr sher vielen Tutorials benötigt.



  • #include <windows>
    

    hab ich aber selber noch nie includiert das macht das stdafx,h fuer mich #gg



  • So nun habe ich eine Fehler..
    Zu der express version, muss man sich erstens das SDK saugen und es 2tens noch manuell verlinken..

    aber nun schmeist mir das ganze folgenden fehler...

    d:\visual studio 2005\projects\test 123\test 123\undoc01.cpp(80) : error C2664: 'GetModuleFileNameW' : cannot convert parameter 2 from 'char [200]' to 'LPWCH'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    d:\visual studio 2005\projects\test 123\test 123\undoc01.cpp(83) : error C2664: 'CreateProcessW' : cannot convert parameter 2 from 'char [200]' to 'LPWSTR'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    d:\visual studio 2005\projects\test 123\test 123\undoc01.cpp(95) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'LPBYTE' to 'LPCWSTR'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    d:\visual studio 2005\projects\test 123\test 123\undoc01.cpp(113) : error C2664: 'GetShortcutName' : cannot convert parameter 1 from 'char [200]' to 'TCHAR *'
    

    auf das oben genannte tutorial.
    aber die parameter stimmen können sich doch nicht mal ebend geänder haben ?!



  • im Visual Studio 2005 werden neue Projekte standardmäßig als Unicode kompiliert und nciht mehr als MultiByte.



  • Ähmmm und wie löse ich das Problem nun???



  • ersetze char durch TCHAR und "mein string-inhalt" durch _T("mein string-inhalt")


Log in to reply