Bagikan melalui


Cara: Membuat Aplikasi Tepercaya Sebagian dengan Menghapus Dependensi pada DLL Pustaka CRT

Topik ini membahas cara membuat aplikasi Common Language Runtime yang tepercaya sebagian menggunakan Visual C++ dengan menghapus dependensi pada msvcm90.dll.

Aplikasi Visual C++ yang dibangun dengan /clr akan memiliki dependensi pada msvcm90.dll, yang merupakan bagian dari Pustaka C-Runtime. Ketika Anda ingin aplikasi Anda digunakan di lingkungan kepercayaan parsial, CLR akan memberlakukan aturan keamanan akses kode tertentu di DLL Anda. Oleh karena itu, perlu untuk menghapus dependensi ini karena msvcm90.dll berisi kode asli dan kebijakan keamanan akses kode tidak dapat diberlakukan di atasnya.

Jika aplikasi Anda tidak menggunakan fungsionalitas C-Runtime Library dan Anda ingin menghapus dependensi pada pustaka ini dari kode Anda, Anda harus menggunakan opsi linker /NODEFAULTLIB:msvcmrt.lib dan menautkan dengan ptrustm.lib atau ptrustmd.lib. Pustaka ini berisi file objek untuk inisialisasi dan uninisialisasi aplikasi, kelas pengecualian yang digunakan oleh kode inisialisasi, dan kode penanganan pengecualian terkelola. Menautkan di salah satu pustaka ini akan menghapus dependensi apa pun pada msvcm90.dll.

Catatan

Urutan uninisialisasi perakitan mungkin berbeda untuk aplikasi yang menggunakan pustaka ptrust. Untuk aplikasi normal, rakitan biasanya dibongkar dalam urutan terbalik yang dimuat, tetapi ini tidak dijamin. Untuk aplikasi kepercayaan parsial, rakitan biasanya dibongkar dalam urutan yang sama dengan yang dimuat. Ini, juga, tidak dijamin.

Untuk membuat aplikasi campuran (/clr) yang tepercaya sebagian

  1. Untuk menghapus dependensi pada msvcm90.dll, Anda harus menentukan ke linker untuk tidak menyertakan pustaka ini dengan menggunakan opsi linker /NODEFAULTLIB:msvcmrt.lib . Untuk informasi tentang cara melakukan ini menggunakan lingkungan pengembangan Visual Studio atau secara terprogram, lihat /NODEFAULTLIB (Abaikan Pustaka).

  2. Tambahkan salah satu pustaka ptrustm ke dependensi input linker. Gunakan ptrustm.lib jika Anda membangun aplikasi dalam mode rilis. Untuk mode debug, gunakan ptrustmd.lib. Untuk informasi tentang cara melakukan ini menggunakan lingkungan pengembangan Visual Studio atau secara terprogram, lihat . File Lib sebagai Input Linker.

Baca juga

Rakitan Campuran (Asli dan Terkelola)
Inisialisasi Rakitan Campuran
Dukungan Pustaka untuk Rakitan Campuran
/link (Opsi Pass ke Linker)