Instrukcje: tworzenie weryfikowalnych projektów C++ (C++/CLI)

Kreatory aplikacji Visual C++ nie tworzą projektów weryfikowalnych.

Ważne

Przestarzałe programy Visual Studio 2015 i Visual Studio 2017 nie obsługują plików /clr:pure i /clr:safe tworzenia weryfikowalnych projektów. Jeśli potrzebujesz weryfikowalnego kodu, zalecamy tłumaczenie kodu na język C#.

Jeśli jednak używasz starszej wersji zestawu narzędzi kompilatora Microsoft C++, który obsługuje /clr:pure i /clr:safe, projekty można przekonwertować, aby były weryfikowalne. W tym temacie opisano sposób ustawiania właściwości projektu i modyfikowania plików źródłowych projektu w celu przekształcenia projektów programu Visual Studio C++ w celu tworzenia weryfikowalnych aplikacji.

Ustawienia kompilatora i konsolidatora

Domyślnie projekty platformy .NET używają flagi kompilatora /clr i konfigurują konsolidator do docelowego sprzętu x86. W przypadku kodu weryfikowalnego należy użyć flagi /clr:safe i należy poinstruować konsolidatora, aby wygenerował MSIL zamiast instrukcji maszyny natywnej.

Aby zmienić ustawienia kompilatora i konsolidatora

  1. Wyświetl stronę właściwości projektu. Aby uzyskać więcej informacji, zobacz Ustawianie właściwości kompilatora i kompilacji.

  2. Na stronie Ogólne w węźle Właściwości konfiguracji ustaw właściwość Obsługa środowiska uruchomieniowego języka wspólnego na bezpieczną obsługę środowiska uruchomieniowego języka wspólnego MSIL (/clr:safe).

  3. Na stronie Zaawansowane w węźle Konsolidator ustaw właściwość Typ obrazu CLR na Wymusić bezpieczny obraz IL (/CLRIMAGETYPE:SAFE).

Usuwanie natywnych typów danych

Ponieważ natywne typy danych nie są weryfikowalne, nawet jeśli nie są rzeczywiście używane, należy usunąć wszystkie pliki nagłówkowe zawierające typy natywne.

Uwaga

Poniższa procedura dotyczy projektów aplikacji Windows Forms (.NET) i aplikacji konsolowej (.NET).

Aby usunąć odwołania do natywnych typów danych

  1. Oznacz jako komentarz wszystko w pliku Stdafx.h.

Konfigurowanie punktu wejścia

Ze względu na to, że weryfikowalne aplikacje nie mogą używać bibliotek czasu wykonywania języka C (CRT), nie mogą one zależeć od CRT w celu wywołania funkcji main jako standardowego punktu wejścia. Oznacza to, że należy jawnie podać nazwę funkcji, która będzie początkowo wywoływana do konsolidatora. (W tym przypadku parametr Main() jest używany zamiast main() lub _tmain() w celu wskazania punktu wejścia innego niż CRT, ale ponieważ punkt wejścia musi zostać jawnie określony, ta nazwa jest dowolna).

Uwaga

Poniższe procedury dotyczą projektów aplikacji konsolowej (.NET).

Aby skonfigurować punkt wejścia

  1. Zmień _tmain() na Main() w głównym pliku .cpp projektu.

  2. Wyświetl stronę właściwości projektu. Aby uzyskać więcej informacji, zobacz Ustawianie właściwości kompilatora i kompilacji.

  3. Na stronie Zaawansowane w węźle Konsolidator wprowadź wartość Mainwłaściwości Punkt wejścia.

Zobacz też