Udostępnij za pośrednictwem


Importowanie plików i bibliotek typów

Słowa kluczowe MIDL obejmują, import, i importlib, umożliwiając ponowne użycie kodu przez odwoływanie się do istniejących plików nagłówkowych, języka IDL i języka definicji obiektów (ODL), oraz skompilowanych bibliotek typów.

ACF zawierają dyrektywę umożliwia określenie w pliku ACF co najmniej jednego pliku nagłówka języka C, które mają zostać uwzględnione w kodzie wycinkowym wygenerowanym w języku MIDL. Wygenerowany plik będzie zawierał wiersz z dyrektywą preprocesora C #include oraz wskazanym plikiem nagłówkowym. Użyj tej dyrektywy include, aby wprowadzić pliki nagłówkowe specyficzne dla środowiska operacyjnego, a nie zawierające informacji niezbędnych dla interfejsu między klientem a serwerem. Nie należy używać dołączania dla plików nagłówkowych zawierających typy danych, które mają być dostępne dla pliku IDL; Zamiast tego należy użyć dyrektywy import.

Przykład 1

[
  auto_handle
] 
interface X86PC
{ 
  include "gendefs.h", "protos.h", "myfile.h"; 
  //interface typdefs and function declarations here
}

Dyrektywa IDL importu jest standardową metodą wprowadzania definicji typów i interfejsów z innych plików IDL (lub ODL) oraz plików nagłówkowych do twojego pliku IDL. Wszystkie instrukcje IDL w zaimportowanym pliku, takie jak definicje typów, deklaracje i definicje interfejsu stają się dostępne dla importowanego pliku IDL.

Podobnie jak dyrektywa preprocesora języka C #include, dyrektywa import nakazuje kompilatorowi uwzględnienie typów danych zdefiniowanych w zaimportowanych plikach IDL. W przeciwieństwie do dyrektywy #include, dyrektywa import ignoruje prototypy procedur, ponieważ żadne wycinki nie są generowane dla niczego w importowanym pliku. Ponieważ preprocesor jest wywoływany oddzielnie dla importowanego pliku, dyrektywy preprocesora (takie jak **) nie są przenoszone do importowania pliku IDL.

Aby uzyskać dodatkowe informacje na temat używania importowania dołączania plików nagłówków systemu do pliku IDL, zobacz Importowanie plików nagłówków systemu.

Przykład 2

[
  uuid(. . .), object
] 
interface IKnown : IUnknown
{
  import "base.idl", "unknwn.idl", "helper.idl";
  //remainder of interface definition
}

Dyrektywa ODL importlib umożliwia odwołanie do skompilowanej biblioteki typów w pliku IDL lub ODL. Dyrektywa importlib musi znajdować się wewnątrz instrukcji biblioteki i musi poprzedzać inne opisy typów w bibliotece. Zaimportowana biblioteka, a także wygenerowana biblioteka, musi być dostępna dla aplikacji w czasie wykonywania.

Przykład 3

library NewBrowser
{
  importlib("stdole32.tlb");
  importlib("legacy.tlb");
  //remainder of library definition
};

Możesz również użyć dyrektywy #include preprocesora języka C, aby uwzględnić nagłówki i inne pliki w pliku IDL lub ODL. Należy jednak pamiętać, że ta dyrektywa będzie zawierać dosłownie całą zawartość określonego pliku. Jeśli plik nagłówka zawiera prototypy, których nie potrzebujesz ani nie chcesz w plikach szkieletowych generowanych przez MIDL, lub jeśli zawiera definicje typów niezdalnych, należy użyć dyrektywy MIDL import zamiast dyrektywy #include.

importowania

importlib

uwzględnij

importowanie plików nagłówków systemu