Zmień nazwę atrybutu importurename import attribute

Specyficzne dla języka C++C++ Specific

Działa wokół problemów z kolizją nazw.Works around name collision problems.

SkładniaSyntax

#import zmianę nazwy biblioteki typów ("StaraNazwa" , "newname" )#import type-library rename( "OldName" , "NewName" )

ParametryParameters

StaraNazwaOldName
Stara nazwa w bibliotece typów.Old name in the type library.

NewNameNewName
Nazwa, która ma być używana zamiast starej nazwy.Name to be used instead of the old name.

UwagiRemarks

Po określeniu atrybutu zmiany nazwy kompilator zastępuje wszystkie wystąpienia elementu StaraNazwa w bibliotece typów z nazwą pliku w plikach nagłówkowych określoną przez użytkownika.When the rename attribute is specified, the compiler replaces all occurrences of OldName in type-library with the user-supplied NewName in the resulting header files.

Atrybutu zmiany nazwy można użyć, gdy nazwa w bibliotece typów jest zgodna z definicją makra w plikach nagłówkowych systemu.The rename attribute can be used when a name in the type library coincides with a macro definition in the system header files. Jeśli ta sytuacja nie zostanie rozwiązana, kompilator może wydać różne błędy składniowe, takie jak błąd kompilatora C2059 i błąd kompilatora C2061.If this situation isn't resolved, the compiler may issue various syntax errors, such as Compiler Error C2059 and Compiler Error C2061.

Uwaga

Zastąpienie dotyczy nazwy użytej w bibliotece typów, a nie nazwy użytej w pliku nagłówkowym.The replacement is for a name used in the type library, not for a name used in the resulting header file.

Załóżmy na przykład, że właściwość o nazwie MyParent istnieje w bibliotece typów, a makro GetMyParent jest zdefiniowane w pliku nagłówkowym i używane wcześniej #import .For example, suppose a property named MyParent exists in a type library, and a macro GetMyParent is defined in a header file and used before #import. Ponieważ GetMyParent jest to domyślna nazwa funkcji otoki dla właściwości obsługa błędów get , zostanie wystąpiła kolizja nazw.Since GetMyParent is the default name of a wrapper function for the error-handling get property, a name collision will occur. Aby obejść ten problem, użyj następującego atrybutu w #import instrukcji:To work around the problem, use the following attribute in the #import statement:

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

który zmienia nazwę MyParent w bibliotece typów.which renames the name MyParent in the type library. Próba zmiany nazwy GetMyParent otoki zakończy się niepowodzeniem:An attempt to rename the GetMyParent wrapper name will fail:

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

Jest to spowodowane faktem, że nazwa GetMyParent występuje tylko w pliku nagłówkowym biblioteki typów.It's because the name GetMyParent only occurs in the resulting type library header file.

ZAKOŃCZENIE specyficzne dla języka C++END C++ Specific

Zobacz teżSee also

Atrybuty #import#import attributes
#import — dyrektywa#import directive