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".
-
vielleicht geht der Dev-CPP:
http://prdownloads.sourceforge.net/dev-cpp/devcpp4980.exe?use_mirror=switch
-
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.