Cara: membuat proyek C++ yang dapat diverifikasi (C++/CLI)

Wizard aplikasi Visual C++ tidak membuat proyek yang dapat diverifikasi.

Penting

Visual Studio 2015 tidak digunakan lagi dan Visual Studio 2017 tidak mendukung pembuatan proyek /clr:pure dan /clr:safe . Jika Anda memerlukan kode yang dapat diverifikasi, kami sarankan Anda menerjemahkan kode Anda ke C#.

Namun, jika Anda menggunakan versi lama dari toolset kompilator Microsoft C++ yang mendukung /clr:pure dan /clr:safe, proyek dapat dikonversi menjadi dapat diverifikasi. Topik ini menjelaskan cara mengatur properti proyek dan memodifikasi file sumber proyek untuk mengubah proyek Visual Studio C++ Anda untuk menghasilkan aplikasi yang dapat diverifikasi.

Pengaturan pengkompilasi dan pengtaut

Secara default, proyek .NET menggunakan bendera pengkompilasi /clr dan mengonfigurasi linker untuk menargetkan perangkat keras x86. Untuk kode yang dapat diverifikasi, Anda harus menggunakan bendera /clr:safe, dan Anda harus menginstruksikan linker untuk menghasilkan MSIL alih-alih instruksi komputer asli.

Untuk mengubah pengaturan pengkompilasi dan pengtaut

  1. Tampilkan Halaman Properti proyek. Untuk informasi selengkapnya, lihat Mengatur properti kompilator dan build.

  2. Pada halaman Umum di bawah simpul Properti Konfigurasi, atur properti Dukungan Runtime Bahasa Umum ke Dukungan Runtime Bahasa Umum MSIL Aman (/clr:safe).

  3. Pada halaman Tingkat Lanjut di bawah simpul Linker , atur properti Jenis Gambar CLR ke Paksa gambar IL aman (/CLRIMAGETYPE:SAFE).

Menghapus jenis data asli

Karena jenis data asli tidak dapat diverifikasi, bahkan jika tidak benar-benar digunakan, Anda harus menghapus semua file header yang berisi jenis asli.

Catatan

Prosedur berikut berlaku untuk proyek Aplikasi Formulir Windows (.NET) dan Aplikasi Konsol (.NET).

Untuk menghapus referensi ke jenis data asli

  1. Komentari semuanya dalam file Stdafx.h.

Mengonfigurasi titik masuk

Karena aplikasi yang dapat diverifikasi tidak dapat menggunakan pustaka run-time C (CRT), aplikasi tersebut tidak dapat bergantung pada CRT untuk memanggil fungsi utama sebagai titik masuk standar. Ini berarti Bahwa Anda harus secara eksplisit memberikan nama fungsi yang akan dipanggil awalnya ke linker. (Dalam hal ini, Main() digunakan alih-alih main() atau _tmain() untuk menunjukkan titik masuk non-CRT, tetapi karena titik masuk harus ditentukan secara eksplisit, nama ini semena-mena.)

Catatan

Prosedur berikut berlaku untuk proyek Aplikasi Konsol (.NET).

Untuk mengonfigurasi titik masuk

  1. Ubah _tmain() menjadi Main() dalam file .cpp utama proyek.

  2. Tampilkan Halaman Properti proyek. Untuk informasi selengkapnya, lihat Mengatur properti kompilator dan build.

  3. Pada halaman Tingkat Lanjut di bawah simpul Linker , masukkan Main sebagai nilai properti Titik Masuk.

Lihat juga