MIDL için C-Önişlemci Gereksinimleri

Bu sayfa yalnızca MICROSOFT C/C++ ön işlemcisini MIDL tarafından kullanılan ön işlemci olarak değiştirmek için belirli nedenleri olan geliştiriciler veya özelleştirilmiş ön işlemci anahtarları belirtmesi gereken geliştiriciler için geçerlidir. MIDL anahtarları /cpp_cmd, /cpp_optve /no_cpp derleyicinin varsayılan davranışını geçersiz kılmak için kullanılır. Genellikle Microsoft C/C++ ön işlemcisini değiştirmek veya özelleştirilmiş ön işlemci anahtarlarını belirtmek için bir neden yoktur.

MIDL derleyicisi, IDL dosyasının ilk işlenmesi sırasında bir C ön işlemcisi kullanır. IDL dosyalarını derlerken kullanılan derleme ortamı varsayılan bir C/C++ önişlemcisi ile ilişkilendirilir. Farklı bir ön işlemci kullanılacaksa, MIDL derleyici anahtarı /cpp_cmdvarsayılan C/C++-önişlemci adının geçersiz kılınma işlemini etkinleştirir:

midl /cpp_cmd preprocessor_name filename

preprocessor_name

MIDL tarafından kullanılacak ön işlemcinin adını belirtir. İkilinin yolu ile belirtilebilir. .exe uzantısı isteğe bağlıdır.

dosya adı

IDL dosyasının adını belirtir.

  • MIDL derleyicisi, herhangi bir ön işlemcinin aşağıdaki kuralları gözlemlemesini bekler:
  • Giriş dosyası, komut satırındaki son bağımsız değişken olarak belirtilir.
  • Ön işlemcinin çıkışı standart çıkış cihazı olan stdout'a yeniden yönlendirmesi gerekir.
  • Ön işlemcinin çıkış akışında, daha iyi tanılama iletilerini etkinleştirmek için #line yönergeleri vardır.
  • Satır yönergeleri, çıkış akışındaki tek önişlemci yönergeleridir.

MIDL, derleyici iletilerinde kaynak konumu saptamak için gereken satır yönergesinin oluşumları dışında, oluşturulan önişlemcinin derleyicinin giriş akışından tüm önişlemci yönergelerini kaldırdığını varsayar. Microsoft C/C++ ön işlemcisinden farklı bir ön işlemci belirtirken veya /cpp_opt anahtarıyla ön işlemci seçenekleri belirtirken, satır yönergelerini derleyicinin giriş akışına yerleştiren uygun bir ön işlemci seçeneği belirtmek gerekir. Örneğin, Microsoft C/C++ ön işlemcisi için /E seçeneğinin kullanılması gerekir:

midl /cpp_cmd cl.exe /cpp_opt "/E" file.idl

#line yönergesi MIDL tarafından aşağıdaki formlardan birinde kabul edilir:

#line digit-sequence "filename" new-line
 
# digit-sequence "filename" new-line

Line yönergesinin ve diğer önişlemci yönergelerinin tam açıklaması için, kullanılmakta olan C derleyicisi belgelerine bakın.

MIDL yalnızca satır ön işlemci yönergesini kabul eder. Bu nedenle, /no_cpp anahtarı kullanılırsa, giriş dosyasının başka önişlemci yönergeleri olmamalıdır veya giriş dosyası MIDL çağrılmadan önce işlenmiş olmalıdır.

Daha fazla bilgi için bkz. idl dosyalar #defines ile ilgilenme.