Persyaratan C-Preprocessor untuk MIDL
Halaman ini hanya berlaku untuk pengembang yang memiliki alasan khusus untuk menggantikan praprosesor Microsoft C/C++ sebagai prapemroses yang digunakan oleh MIDL, atau untuk pengembang yang harus menentukan sakelar praprosesor yang disesuaikan. Sakelar MIDL /cpp_cmd, /cpp_opt, dan /no_cpp digunakan untuk mengambil alih perilaku default pengkompilasi. Biasanya tidak ada alasan untuk mengganti preprosesor Microsoft C/C++, atau menentukan sakelar praprosesor yang disesuaikan.
Pengkompilasi MIDL menggunakan praprosesor C selama pemrosesan awal file IDL. Lingkungan build yang digunakan saat mengkompilasi file IDL dikaitkan dengan pra-prosesor C/C++ default. Jika pra-prosesor yang berbeda akan digunakan, sakelar pengkompilasi MIDL /cpp_cmd memungkinkan penimpaan nama C/C++-preprocessor default:
midl /cpp_cmd preprocessor_name filename
-
preprocessor_name
-
Menentukan nama pra-prosesor yang akan digunakan oleh MIDL. Dapat ditentukan dengan jalur ke biner. Ekstensi .exe bersifat opsional.
-
Filename
-
Menentukan nama file IDL.
- Kompilator MIDL mengharapkan prapemroses apa pun untuk mengamati konvensi berikut:
- File input ditentukan sebagai argumen terakhir pada baris perintah.
- Pra-prosesor harus mengalihkan output ke perangkat output standar, stdout.
- Dalam aliran output pra-prosesor, arahan #line hadir untuk mengaktifkan pesan diagnostik yang lebih baik.
- Arahan baris adalah satu-satunya arahan prapemrosektif dalam aliran output.
MIDL mengasumsikan bahwa prapemrosedur yang diluncurkan telah menghapus semua arahan prapemrosepaktif dari aliran input kompilator, dengan pengecualian kemunculan arahan baris yang diperlukan untuk menentukan lokasi sumber dalam pesan kompilator. Saat menunjukkan prapemrosedur yang berbeda dari preprosedur Microsoft C/C++, atau saat menentukan opsi praproscessor dengan sakelar /cpp_opt , menentukan opsi prapemrosedur yang sesuai yang menempatkan arahan baris dalam aliran input pengkompilasi diperlukan. Misalnya, untuk pra-prosesor Microsoft C/C++ opsi /E harus digunakan:
midl /cpp_cmd cl.exe /cpp_opt "/E" file.idl
Arahan #line diterima oleh MIDL dalam salah satu bentuk berikut:
#line digit-sequence "filename" new-line
# digit-sequence "filename" new-line
Untuk deskripsi lengkap direktif baris dan arahan praprosesor lainnya, lihat dokumentasi untuk pengkompilasi C yang digunakan.
MIDL hanya menerima direktif pra-prosesor garis. Oleh karena itu, jika sakelar /no_cpp digunakan, file input tidak boleh memiliki arahan prapemrosesan lainnya, atau file input harus telah diproses sebelum memanggil MIDL.
Untuk informasi selengkapnya, lihat Menangani #defines di File IDL.