/char switch
Sakelar /char membantu memastikan bahwa pengkompilasi MIDL dan pengkompilasi C beroperasi bersama-sama dengan benar untuk semua jenis karakter dan kecil .
midl /char { signed | unsigned | ascii7 }
-
Ditandatangani
-
Menentukan bahwa jenis pengkompilasi C default untuk karakter ditandatangani. Semua kemunculan karakter yang tidak disertai dengan spesifikasi tanda dihasilkan sebagai karakter yang tidak ditandatangani.
-
Unsigned
-
Menentukan bahwa jenis pengkompilasi C default untuk karakter tidak ditandatangani. Semua penggunaan kecil yang tidak disertai dengan spesifikasi tanda dihasilkan sebagai kecil yang ditandatangani.
-
ascii7
-
Menentukan bahwa semua nilai karakter akan diteruskan ke dalam file yang dihasilkan tanpa kata kunci tanda tertentu. Semua penggunaan kecil yang tidak disertai dengan spesifikasi tanda dihasilkan sebagai kecil.
Menurut definisi, karakter MIDL tidak ditandatangani. "Small" didefinisikan dalam hal char (#define small char), dan MIDL small ditandatangani.
Sakelar /char mengarahkan pengkompilasi MIDL untuk menentukan deklarasi eksplisit yang ditandatangani atau tidak ditandatangani dalam file yang dihasilkan ketika deklarasi tanda pengkompilasi C berkonflik dengan default MIDL untuk jenis tersebut.
Ingatlah bahwa kompilator MIDL menghasilkan stub sebagai kode sumber C, yang harus Anda kompilasi sebagai bagian dari klien dan program server Anda. Beberapa kompilator menggunakan char yang ditandatangani di mana-mana data karakter ditentukan dalam kode sumber. Kode sumber stub yang dihasilkan pengkompilasi MIDL memperlakukan semua data karakter sebagai karakter yang tidak ditandatangani. Jika pengkompilasi MIDL hanya menghasilkan semua data karakter dalam file IDL sebagai data karakter di stub , pengkompilasi yang menggunakan char yang ditandatangani untuk data karakter akan menyebabkan konflik dalam kode sumber stub.
Tujuan dari sakelar baris perintah /char adalah untuk mengatasi potensi konflik ini. Ini mempertahankan semua data yang ditentukan sebagai karakter dalam file IDL sebagai karakter yang tidak ditandatangani dalam kode sumber stub. Ini juga mempertahankan data kecil seperti yang ditandatangani.
Tabel berikut ini meringkas jenis yang dihasilkan.
opsi midl /char | Jenis karakter yang dihasilkan | Jenis kecil yang dihasilkan |
---|---|---|
midl /char ditandatangani | char yang tidak bertanda | Kecil |
midl /char unsigned | char | ditandatangani kecil |
midl /char ascii7 | char | Kecil |
Opsi /char signed menunjukkan bahwa karakter pengkompilasi C dan jenis kecil ditandatangani. Agar sesuai dengan default MIDL untuk char, pengkompilasi MIDL harus mengonversi semua penggunaan karakter yang tidak disertai dengan spesifikasi tanda ke karakter yang tidak ditandatangani. Jenis kecil tidak dimodifikasi karena default pengkompilasi C ini cocok dengan default MIDL untuk yang kecil.
Opsi /char unsigned menunjukkan bahwa jenis karakter pengkompilasi C tidak ditandatangani. Kompilator MIDL mengonversi semua penggunaan kecil yang tidak disertai dengan spesifikasi tanda menjadi kecil yang ditandatangani.
Opsi ascii7 menunjukkan bahwa tidak ada spesifikasi tanda eksplisit yang ditambahkan ke jenis karakter . Jenis kecil dihasilkan sebagai kecil.
Untuk menghindari kebingungan, Anda harus menggunakan spesifikasi tanda eksplisit untuk jenis karakter dan kecil jika memungkinkan dalam file IDL. Perhatikan bahwa penggunaan jenis karakter yang ditandatangani secara eksplisit dalam file IDL Anda tidak didukung oleh DCE IDL. Oleh karena itu, fitur ini tidak tersedia saat Anda mengkompilasi dengan sakelar MIDL /osf .
Untuk informasi selengkapnya terkait /char, lihat kecil.
midl /char signed filename.idl
midl /char unsigned filename.idl
midl /char ascii7 filename.idl