Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wszystkie projekty języka Visual C++ CLR domyślnie łączą się z bibliotekami czasu wykonywania języka C. W związku z tym te projekty są klasyfikowane jako aplikacje w trybie mieszanym, ponieważ łączą kod natywny z kodem przeznaczonym dla środowiska uruchomieniowego języka wspólnego (kod zarządzany). Po skompilowaniu są one kompilowane w języku pośrednim (IL), nazywanym również językiem pośrednim firmy Microsoft (MSIL).
Ważne
Przestarzałe programy Visual Studio 2015 i Visual Studio 2017 nie obsługują już tworzenia /clr:pure
ani /clr:safe
kodu dla aplikacji CLR. Jeśli potrzebujesz czystych lub bezpiecznych zestawów, zalecamy tłumaczenie aplikacji na język C#.
Jeśli używasz starszej wersji zestawu narzędzi kompilatora języka Microsoft C++, który obsługuje /clr:pure
program lub /clr:safe
, możesz użyć tej procedury, aby przekonwertować kod na czysty MSIL:
Aby przekonwertować aplikację w trybie mieszanym na czysty język pośredni
Usuń łącza do bibliotek środowiska uruchomieniowego języka C (CRT):
W pliku .cpp definiującym punkt wejścia aplikacji zmień punkt wejścia na
Main()
. UżycieMain()
wskazuje, że projekt nie łączy się z CRT.W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Właściwości w menu skrótów, aby otworzyć strony właściwości aplikacji.
Na stronie Właściwości projektu zaawansowanegokonsolidatora wybierz punkt wejścia, a następnie wprowadź ciąg Main w tym polu.
W przypadku aplikacji konsolowych na stronie właściwości projektu System konsolidatora wybierz pole SubSystem i zmień je na
Console (/SUBSYSTEM:CONSOLE)
.Uwaga
Nie musisz ustawiać tej właściwości dla aplikacji Windows Forms, ponieważ pole SubSystem jest domyślnie
Windows (/SUBSYSTEM:WINDOWS)
ustawione.W
stdafx.h
pliku oznacz jako komentarz wszystkie instrukcje#include
. Na przykład w aplikacjach konsoli:// #include <iostream> // #include <tchar.h>
— lub —
Na przykład w aplikacjach Windows Forms:
// #include <stdlib.h> // #include <malloc.h> // #include <memory.h> // #include <tchar.h>
W przypadku aplikacji Windows Forms w pliku
Form1.cpp
dodaj komentarz do instrukcji#include
, która odwołuje się dowindows.h
. Na przykład:// #include <windows.h>
Dodaj następujący kod do pliku
stdafx.h
:#ifndef __FLTUSED__ #define __FLTUSED__ extern "C" __declspec(selectany) int _fltused=1; #endif
Usuń wszystkie typy niezarządzane:
W razie potrzeby zastąp niezarządzane typy odwołaniami do struktur z
System
przestrzeni nazw. Typowe typy zarządzane są wymienione w poniższej tabeli:Struktura opis Boolean
Reprezentuje wartość logiczną. Byte
Reprezentuje 8-bitową liczbę całkowitą bez znaku. Char
Reprezentuje znak Unicode. DateTime
Reprezentuje moment w czasie, zwykle wyrażony jako data i godzina dnia. Decimal
Reprezentuje liczbę dziesiętną. Double
Reprezentuje liczbę zmiennoprzecinkową o podwójnej precyzji. Guid
Reprezentuje unikatowy identyfikator globalny (GUID). Int16
Reprezentuje 16-bitową liczbę całkowitą ze znakiem. Int32
Reprezentuje 32-bitową liczbę całkowitą ze znakiem. Int64
Reprezentuje 64-bitową liczbę całkowitą ze znakiem. IntPtr
Typ specyficzny dla platformy, który jest używany do reprezentowania wskaźnika lub uchwytu. SByte
Reprezentuje 8-bitową liczbę całkowitą ze znakiem. Single
Reprezentuje liczbę zmiennoprzecinkową o pojedynczej precyzji. TimeSpan
Reprezentuje przedział czasu. UInt16
Reprezentuje 16-bitową liczbę całkowitą bez znaku. UInt32
Reprezentuje 32-bitową liczbę całkowitą bez znaku. UInt64
Reprezentuje 64-bitową liczbę całkowitą bez znaku. UIntPtr
Typ specyficzny dla platformy, który jest używany do reprezentowania wskaźnika lub uchwytu. Void
Wskazuje metodę, która nie zwraca wartości; oznacza to, że metoda ma typ zwracany void
.