zmienianie nazwy atrybutu importu

Specyficzne dla języka C++

Działa wokół problemów z kolizją nazw.

Składnia

#import nazwa bibliotekitypów( "OldName", "NewName" )

Parametry

OldName
Stara nazwa w bibliotece typów.

Newname
Nazwa, która ma być używana zamiast starej nazwy.

Uwagi

Po określeniu atrybutu zmiany nazwy kompilator zastępuje wszystkie wystąpienia OldName w bibliotece typów elementem NewName dostarczonym przez użytkownika w wynikowych plikach nagłówków.

Atrybut zmiany nazwy może być używany, gdy nazwa w bibliotece typów pokrywa się z definicją makr w plikach nagłówka systemu. Jeśli ta sytuacja nie zostanie rozwiązana, kompilator może wystawiać różne błędy składniowe, takie jak błąd kompilatora C2059 i błąd kompilatora C2061.

Uwaga

Zamiana jest nazwą używaną w bibliotece typów, a nie nazwą używaną w wynikowym pliku nagłówka.

Załóżmy na przykład, że właściwość o nazwie MyParent istnieje w bibliotece typów, a makro GetMyParent jest definiowane w pliku nagłówka i używane przed #import. Ponieważ GetMyParent jest domyślną nazwą funkcji otoki dla właściwości obsługi get błędów, wystąpi kolizja nazw. Aby obejść ten problem, użyj następującego atrybutu w instrukcji #import :

#import MyTypeLib.tlb rename("MyParent","MyParentX")

która zmienia nazwę MyParent w bibliotece typów. Próba zmiany nazwy otoki zakończy się niepowodzeniem GetMyParent :

#import MyTypeLib.tlb rename("GetMyParent","GetMyParentX")

Jest to spowodowane tym, że nazwa GetMyParent występuje tylko w wynikowym pliku nagłówka biblioteki typów.

END C++ Specific

Zobacz też

atrybuty #import
dyrektywa #import