Menargetkan Stub untuk Platform 32-bit atau 64-bit Tertentu
Beberapa fitur Microsoft RPC dan MIDL 3.0 dan yang lebih baru adalah khusus platform.
Sebagai tindakan pencegahan, kompilator MIDL 3.0 dan yang lebih baru menghasilkan penjaga yang memfasilitasi pemeriksaan kompatibilitas selama fase kompilasi C. MIDL menghasilkan dua jenis penjaga: penjaga yang bergantung pada platform (32-bit versus 64-bit) dan pelindung dependen rilis (dependensi set fitur). Misalnya, MIDL menghasilkan penjaga berikut untuk mencegah kompilasi C dari stub 32-bit untuk platform lain:
#if !defined(__RPC_WIN32__)
#error Invalid build platform for this stub.
#endif
Pelindung dependen rilis dipicu oleh serangkaian fitur yang ditemukan dalam file IDL yang diproses dan oleh sakelar /target . Misalnya, jika antarmuka menggunakan fitur yang hanya didukung pada Windows 2000 atau yang lebih baru, MIDL menghasilkan penjaga dengan makro TARGET_IS_NT50_OR_LATER.
Makro penjaga, yang didefinisikan dalam Rpcndr.h, tergantung pada pengaturan WINVER dan _WIN32_WINNT dan dievaluasi oleh pengkompilasi C/C++.
Jika, pada waktu kompilasi C, Anda mendapatkan pesan kesalahan yang menunjukkan bahwa Anda memerlukan platform tertentu untuk menjalankan stub, pertama-tama periksa untuk memastikan Anda belum menggunakan fitur yang tidak tersedia di platform ini. Fitur yang memicu penjaga tertentu tercantum dalam tubuh penjaga. Dalam contoh sebelumnya, sakelar kompilator -Oicf memicu penjaga. Fitur penting dari jenis ini termasuk sakelar /robust dan atribut [asinkron] yang tersedia pada Windows 2000 dan yang lebih baru, konstruktor jenis pipa, opsi pengompilasi /Oif, dan atribut [user_marshal] dan [wire_marshal]. Stub yang menggunakan fitur-fitur ini tidak akan berjalan pada sistem sebelumnya.
Jika Anda tahu bahwa platform target Anda benar untuk fitur yang Anda gunakan dan masih menerima kesalahan, Anda mungkin perlu mengatur variabel lingkungan dengan tepat.
Untuk membangun rilis Windows 2000 atau yang lebih baru
Tambahkan baris ini ke makefile Anda:
CFLAGS = $(CFLAGS) -D_WIN32_WINNT=0x500
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk