Visual C++ .NET und das Managed Zeug



  • Wie ja aus dem Titel schon ersichtlich ist, benutze ich Visual C++ .NET. Leider habe ich da ein kleines Problem, von dem ich nicht weiß, ob es in ein größeres Problem ausartet.

    Eine von mir erstellte Anwendung ist auf einem Rechner, auf dem das NET Framewirk nicht installiert ist, nicht lauffähig. Das konnte ich noch beseitigen, indem ich in dem Projekteinstellungen dieses 'Managed-...'(was auch immer deaktiviert habe). Damit lief die Anwendung zwar, aber ich binde zusätzlich noch eine selstgeschriebene DLL ein.

    Wenn ich in dem Projekteinstellungen der DLL nun die Managed-Einstellung deaktiviere, bekomme ich nun eine Fehlermeldung, das irgend was nicht verbunden werden konnte oder so. Lasse ich das Managed aber aktiv, beschwert er sich uber eine fehlende mscoree.dll, welche zum NET Framework gehört.

    (Die Tests wurden auf einem Rechner durchgeführt, auf dem kein Kompiler, NET Framework, o.ä installiert ist)

    Ich will nicht voraussetzten, das der Nutzer des Programmes irgendwas installiert hat.
    Daher möchte ich nun wissen wie ich was einstellen muß, oder ob ich mir liber die Version 6.0 besorgen sollte.



  • Servus,

    erstelle doch immer ein unmanaged Projekt mit MFC. Dann kannst du aber nicht den kram von .NET Framework nutzen. .Net Framework wird erst ab nächster Windows Version standardmäßig mitgeliefert sein. Ein Unmanaged MFC Projekt kannst du auf jedem Rechner laufen lassen solange du die DLL's statisch linken lässt. Einstellungen dazu findest du unter den Projekt Eigenschaften (General). Lässt du das Projekt dynamisch linken musst du alle DLL's mitliefern.

    Managed bedeutet im Groben gesagt das das Programm bildlisch dargestellt in einem eigenen Raum arbeitet und unäbhangig von äußerlichen Einwirkungen ist. Vorteil: Es stürzt nicht so schnell ab(es sei denn der Programmierer schreibt müll)
    Nachteil: Man kann aus diesem Raum nicht heraus und somit nur schwer auf andere Speicheradressen Funktion etc. (Was weiss ich noch) zugreifen.

    Genauere Erklärung findest du bei Microsoft.

    Hellsgore

    PS: Also ich arbeite auch mit VS .NET und dann mit unmanaged C++ mit MFC statisch gelinkt.



  • Hi,
    so ein Projekt kann ich nicht erstellen. Vielleicht sollte ich noch erwähnen, das ich MFC, ATL, oder sonstiges Zeug nicht verwende. Für Windows-Programmierung benutze ich die pure Win-API.

    Bisher habe ich immer die 'Verwaltete C++-Anwendung' für meine Projekte verwendet, allerdings möchte ich nicht voraussetzten, das der Benutzer des Programms irgendwelche Komponenten, wie etwa NET Frameword installiert hat.

    Im folgenden mal eine Liste mit Projekt-Typen die ich mit Visual C++ NET Standard erstellen kann. (Nicht wundern: ich habe das DirectX SDK installiert, daher auch 'DirectX 9 Visual C++ Wizard')

    Visual C++-Projekte
    - ATL-Projekt
    - ATL-Serverprojekt
    - ATL-Serverwebdienst
    - DirectX 9 Visual C++ Wizard
    - Makefile-Projekt
    - MFC-ActiveX-Steuerelement
    - MFC-Anwendung
    - MFC-DLL
    - Verwaltete C++-Anwendung
    - Verwaltete C++-Klassenbibliothek
    - Verwalteter C++-Webdienst
    - Verwaltetes leeres C++-Projekt
    - Win32-Projekt

    Setup- und Weitergabeprojekte
    - Setup-Projekt

    Andere Projekte
    Datenbankprojekte
    - Datenbankprojekt

    Visual Studio-Projektmappen
    - Leere Projektmappe

    Also wenn mir jemand sagen kann, wie ich ein C++-Projekt erstellen kann, das nur das verwendet, was ab Windows 98 auf jeden Fall mitgeliefert wird. Sprich: kein .NET, o.ä.

    P.S. Hätte ich mir bloß die v.6.0 von VC++ geholt.



  • für Winapi muss du wohl ein Win32-Projekt starten 😉 🙄


Anmelden zum Antworten