C++ / WinAPI welcher Compiler, z.B. DJGPP ?



  • Wenn man C++ / WinAPI mit einem kostenlosen Compiler betreiben will, welchen nimmt man dann und wo erhält man eine Beschreibung, wie man die entsprechenden libs einbindet? Woher erhält man die Windows-Libs?

    Bisher habe ich hierfür nur MS VC++ benutzt, daher die "dumme" Frage. Ich würde z.B. gerne den DJGPP ( für C++-Konsolen verwendet man dann z.B.: gxx c:\temp\programm.cpp -o c:\temp\programm.exe ) verwenden.

    Was muss man machen, um folgendes Programm mit DJGPP zu kompilieren:

    #include <windows.h> 
    int WINAPI WinMain(HINSTANCE hI, HINSTANCE, TCHAR*, int) 
    { 
     MessageBox(NULL, "Hallo", "", MB_OK); 
     return 0; 
    }
    

    Er motzt wegen fehlender windows.h.



  • PSDK von Microsoft downloaden ... sollte aber eigentlich in den FAQ stehen - falls nicht, ist as ein heißer Anwärter darauf.

    M.T.



  • wenn ich diese ca. 350 MB (!) gesaugt und nach Anwesiung installiert habe, was passiert dann? Wie kann ich obiges o.ä. Programme compilieren/linken? Welchen Compiler nimmt man da? In der FAQ habe ich das nicht gefunden, auch nicht bei "andere Compiler".





  • Um die WinAPI mit dem DJGPP zu nutzen solltest du einfach mal unter http://www.delorie.com/djgpp/zip-picker.html nachschauen welche Packete da für Windows vorgeschlagen werden.

    Ich habe es allerdings bisher noch nie geschafft mit dem DJGPP ein Windows-Programm zu kompilieren. besser ist MinGW ein anderer Windows port des gcc. Der ist inklusive aller libs im DevCpp (http://www.bloodshed.net/dev/devcpp.html) enthalten.
    DevCpp hat auch eine funktion um deine VisualC++ Projekte zu importieren.

    Als Alternative gibt es auch noch den LCC-Compiler (auch mit IDE, Ressourcen-Editor, etc.)http://www.cs.virginia.edu/~lcc-win32/

    mfg

    j_freeze



  • Der kostenlose Dev-Cpp (aktuelle Version 4.9.8.1) compiliert WinAPI-Programme problemlos. 🙂



  • Etwas komplizierter ist für Einsteiger das Einbinden von Bibliotheken. nehmen wir folgendes als konkretes Beispiel:

    #include <windows.h> 
    #include <WinInet.h>  // einzubindende Library : WinInet.lib (MSVC++) 
    
    int WINAPI WinMain( HINSTANCE, HINSTANCE, PSTR, int )
    {
     DWORD dwFlags; 
     BOOL RetVal = InternetGetConnectedState(&dwFlags,0); 
     if(RetVal == TRUE) MessageBox(NULL, "Verbunden", "Internet", 0); 
     else               MessageBox(NULL, "Getrennt",  "Internet", 0);
     return 0;
    }
    

    Beim MSVC++ geht man über das Menü "Projekt - Einstellungen - Linker" und fügt dann bei "Objekt-/Bibliothekmodule" die Bibliothek "wininet.lib" hinzu.

    Verwendet man den kostenlosen Dev-Cpp, so wählt man den Weg "project options - parameters - linker" und fügt "-lwininet" ein. Das geht nur, wenn die xxx.cpp einem Projekt hinzugefügt wurde. 🙂


Anmelden zum Antworten