win32 application



  • hallo, habe mir ein video angesehen, wonach behauptet wird, dass man mit visual c++ express auch wirkliche win32 programme (ohne .net framework) schreiben kann. man benötigt dafür die platform sdk und muss gewisse änderungen in der corewinexpress.vcprops vornehmen. allerdings läuft es auf einen win xp rechner ohne .net framework nicht.

    habe ich da etwas falsch verstanden?

    falls ja, wofür genau ist das platform sdk?

    gruß gerd



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ja natürlich kannst Du natiove Win32-Applikationen schreiben... Und es läift vermutlich auf einem anderen System nicht, da Du vergessen hast die CRT-DLLs mitzugeben bzw. statisch zu linken. Das .NET-Framework bringt zufälligerweise diese CRT-DLLs auch mit...
    Siehe:
    http://www.codeproject.com/cpp/vcredists_x86.asp

    Und das PSDK brauchst Du dazu, dass Du die WinAPI verwenden kannst...



  • Hallo,

    crt-dlls? sind das diese 3:

    MSVCR80.DLL
    MSVCP80.DLL
    MSVCM80.DLL

    kann man die auch mit in die exe packen?

    gruß gerd



  • gerd01 schrieb:

    crt-dlls? sind das diese 3:
    MSVCR80.DLL
    MSVCP80.DLL
    MSVCM80.DLL

    Da fehlt noch die Manifest-Datei für diese DLLs!!!
    Microsoft.VC80.CRT.manifest

    gerd01 schrieb:

    kann man die auch mit in die exe packen?

    Nein. Du kannst höchstens statisch gegen die CRT linken, dann brauchst Du gar keine DLLs (das ist genau das was Du haben willst). Siehe Projekt-Einstellungen "C/C++|Code generation|Runtime Library: (irgendwas auswähle *ohne* DLL)"



  • ok, danke erstmal.

    wenn ich das jetzt aber umstelle auf irgendein wert (ohne dll), dann schimpft er, das:

    cl : Befehlszeile error D8016 : Die Befehlszeilenoptionen /MT und /clr:pure sind inkompatibel.

    was ist da jetzt noch falsch?

    gruß gerd



  • Du erstellst eine .NET Applikation und keine native Win32 Applikation.
    Also entweder Du verwendest .NET (z.B. Windows-Forms), dann musst Du das .NET-Framework mitleifern (und wenn Du noch MFC verwendest noch die MFC-DLLs)
    oder Du verwendest native Win32 dann kannst Du statisch linken (/clr option entfernen).



  • oha, danke.

    schade wäre ja zu schön gewesen, wenn die windows forms auch direkt native zu kompilieren gingen! 🙂

    gruß gerd


Log in to reply