Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta strona dotyczy tylko deweloperów, którzy mają określone powody, aby zastąpić preprocesor Microsoft C/C++ jako preprocesor używany przez MIDL lub deweloperów, którzy muszą określić dostosowane przełączniki preprocesora. Przełączniki MIDL /cpp_cmd, /cpp_opti /no_cpp są używane do zastępowania domyślnego zachowania kompilatora. Zazwyczaj nie ma powodu, aby zastąpić preprocesor microsoft C/C++, ani określić dostosowanych przełączników preprocesora.
Kompilator MIDL używa preprocesora języka C podczas początkowego przetwarzania pliku IDL. Środowisko kompilacji używane podczas kompilowania plików IDL jest skojarzone z domyślnym preprocesorem C/C++. Jeśli ma być używany inny preprocesor, przełącznik kompilatora MIDL /cpp_cmd umożliwia zastąpienie domyślnej nazwy preprocesora C/C++::
midl /cpp_cmd preprocessor_name filename
-
preprocessor_name
-
Określa nazwę preprocesora, który ma być używany przez MIDL. Można określić ścieżkę do pliku binarnego. Rozszerzenie .exe jest opcjonalne.
-
nazwy pliku
-
Określa nazwę pliku IDL.
- Kompilator MIDL oczekuje, że każdy preprocesor będzie przestrzegał następujących konwencji:
- Plik wejściowy jest określony jako ostatni argument w wierszu polecenia.
- Preprocesor musi przekierowywać dane wyjściowe do standardowego urządzenia wyjściowego stdout.
- W strumieniu wyjściowym preprocesora dyrektywy #line są obecne, aby umożliwić lepsze komunikaty diagnostyczne.
- Dyrektywy wiersza są jedynymi dyrektywami preprocesora w strumieniu wyjściowym.
MIDL zakłada, że zduplikowany preprocesor usunął wszystkie dyrektywy preprocesora ze strumienia wejściowego kompilatora, z wyjątkiem wystąpień dyrektywy liniowej niezbędnej do utworzenia lokalizacji źródłowej w komunikatach kompilatora. W przypadku wskazania preprocesora innego niż preprocesor języka Microsoft C/C++ lub podczas określania opcji preprocesora za pomocą przełącznika /cpp_opt należy określić odpowiednią opcję preprocesora, która umieszcza dyrektywy liniowe w strumieniu wejściowym kompilatora. Na przykład w przypadku preprocesora Microsoft C/C++ należy użyć opcji /E:
midl /cpp_cmd cl.exe /cpp_opt "/E" file.idl
Dyrektywa #line jest akceptowana przez MIDL w jednej z następujących form:
#line digit-sequence "filename" new-line
# digit-sequence "filename" new-line
Pełny opis dyrektywy liniowej i innych dyrektyw preprocesora można znaleźć w dokumentacji używanego kompilatora języka C.
MIDL akceptuje tylko dyrektywę preprocesora liniowego. W związku z tym, jeśli jest używany przełącznik /no_cpp, plik wejściowy nie może mieć innych dyrektyw preprocesora lub plik wejściowy musi zostać przetworzony przed wywołaniem MIDL.
Aby uzyskać więcej informacji, zobacz Do czynienia z #defines w plikach IDL.