zmienianie nazwy atrybutu importu
Specyficzne dla języka C++
Działa wokół problemów z kolizją nazw.
Składnia
#import nazwa biblioteki typó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