Freigeben über


Erstellen und Debuggen von Visual C++-Geräteprojekten

Aktualisiert: November 2007

Das Erstellen und Debuggen von Geräteprojekten unterscheidet sich geringfügig vom Erstellen und Debuggen von Desktopprojekten.

Im Folgenden finden Sie eine Liste von Erstellungs- und Debugverfahren:

  • Das Threadingmodell für Geräteprojekte ist standardmäßig Frei. Unter Windows CE werden COM-Marshalling und zugeordnete Definitionen jedoch nicht vollständig unterstützt, wenn die DCOM-Option beim Erstellen des CE-Betriebssystemabbilds nicht ausgewählt war. Auf bestimmten CE-Plattformen kann der Compiler deshalb Warnungen zur DCOM-Unterstützung und zur Single- und Multithreadingdefinition generieren. Diese Warnung ist hilfreich bei der Behandlung des Threadings und der Synchronisierung in Ihrem eigenen Code. Beispielsweise gibt der Compiler beim Kompilieren eines ATL-Geräteprojekts möglicherweise eine Warnung zum Definieren von _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA aus. Dies trifft auch für Szenarien wie das Erstellen von COM-Objekten sowie das Verwenden von Webdiensten und ATL COM-Objekten auf der Windows Mobile-Plattform zu. Sie können dieses Flag in Ihrer Hauptheaderdatei für Singlethreadobjekte wie folgt definieren: #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA. Wenn im Code Multithreading behandelt wird, können Sie diese Warnung ignorieren. Weitere Informationen zu COM, DCOM und Threadmodellen unter Windows CE finden Sie in der Windows CE 5.0-Dokumentation unter COM Threads and Processes und Component Services (COM and DCOM) (auf Englisch).

  • Systemeigene Geräteanwendungen werden standardmäßig mit einer statischen Verknüpfung erstellt. Sie können der Projekteigenschaft Zusätzliche Dateien die folgenden Laufzeit-DLLs hinzufügen, wenn Sie zu einer dynamischen Verknüpfung wechseln möchten:

    • Releasebuildkonfigurationen für MFC-Anwendungen

      Fügen Sie der Projekteigenschaft Zusätzliche Dateien die folgenden Laufzeit-DLLs hinzu: msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;MFC80U.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;

    • Debugbuildkonfigurationen für MFC-Anwendungen

      Fügen Sie der Projekteigenschaft Zusätzliche Dateien die folgenden Laufzeit-DLLs hinzu: msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;MFC80Ud.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;

    • Releasebuildkonfigurationen für ATL-Anwendungen

      Fügen Sie der Projekteigenschaft Zusätzliche Dateien die folgenden Laufzeit-DLLs hinzu: msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<Projektname>|0;

    • Debugbuildkonfigurationen für ATL-Anwendungen

      Fügen Sie der Projekteigenschaft Zusätzliche Dateien die folgenden Laufzeit-DLLs hinzu: msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<Projektname>|0;msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<Projektname>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<Projektname>|0;

      Weitere Informationen über das Laden von Windows CE-DLLs finden Sie unter LoadLibrary.

      Hinweis:

      Wenn gleichzeitig mehrere DLLs mit dem gleichen Namen aus verschiedenen Verzeichnissen geladen werden (z. B. \Windows\aDLL.dll und \Programme\aDLL.dll), kann dies zu unvorhersehbaren Ergebnissen führen. Es wird empfohlen, jeweils nur eine Kopie einer DLL zu laden. Andernfalls wird die zuerst geladene DLL aufgerufen.

Im Folgenden finden Sie einige zusätzliche Überlegungen:

  • Beim Portieren zu MFC 8.0 müssen Sie _WIN32_WCE_PSPC definieren. Dieses Flag wird standardmäßig nicht in MFC8.0 definiert.

  • Die ARM4T-Option wird nicht unterstützt, wenn in der Dropdownliste Für Architektur kompilieren Pocket PC 2003 oder Smartphone 2003 ausgewählt wird. Um diese Liste im Dialogfeld <Projektname>-Eigenschaftenseiten anzuzeigen, klicken Sie auf Konfigurationseigenschaften, dann auf C/C++ und auf Erweitert und wählen dann Für Architektur kompilieren aus.

  • GAPI-Funktionen können in C++ verwendet werden, nicht jedoch in C. Das Einschließen von gx.h in Ihren Code funktioniert nur in C++. Wenn Sie GAPI im Code verwenden, darf beim Kompilieren nicht die /TC-Compileroption verwendet werden.

  • In MFC 8.0 für Geräte können Sie das Erstellen und Einfügen von CommandBar steuern. Der CDialog::m_pWndEmptyCB-Member wird nicht mehr unterstützt. Mit diesem Member wurde auf die leere CCommandBar-Klasse gezeigt (bei Pocket PC auch als MenuBar bezeichnet), die für das Dialogfeld erstellt wurde. Sie könnten einen Verweis darauf erstellen, um eine eigene MenuBar einzufügen.

  • Checked::_strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l, Checked::tcslwr_s und Checked::gcvt_s werden für Plattformen bereitgestellt, die Windows CE verwenden.

  • Das _WIN32_WCE_PSPC-Flag wird nicht mehr definiert. Sie können das _WIN32_WCE_PSPC WIN32_PLATFORM_PSPC-Flag als Umgehung verwenden.

  • Schließen Sie für das Portieren von STL-Anwendungen <deque> statt #include <deque.h> ein.

  • Die IDE unterstützt mehrere Plattformen. Wenn Sie MFC- oder ATL-ActiveX-Objekte in einem Geräteprojekt in einer Dialogfeldressource hosten, sollten Sie ein entsprechendes Steuerelement in einem entsprechenden ActiveX-Desktopprojekt erstellen und registrieren. Das Steuerelement kann im Ressourcen-Editor der Dialogfeldvorlagen für Geräte hinzugefügt und ordnungsgemäß ausgeführt werden. Der Desktop und die Geräteversionen des ActiveX-Steuerelements müssen die gleiche GUID aufweisen und über die gleichen Entwurfszeiteigenschaften (z. B. die Hintergrundfarbe) verfügen.

Siehe auch

Aufgaben

Gewusst wie: Bereitstellung eines Geräts in einem Visual C++-Projekt

Konzepte

Debuggen und Bereitstellungseinstellungen für Visual C++-Geräteprojekte

Debuggen und Bereitstellungseinstellungen für Visual C++-Geräteprojekte

Referenz

Debuggen, Konfigurationseigenschaften, Dialogfeld '<Projektname>-Eigenschaftenseiten' (Geräte)

Weitere Ressourcen

Debuggen von Geräteprojekten

Erstellen und Portieren von Visual C++-Geräteprojekten

Entwickeln von Visual C++-Geräteprojekten