2009-02-10 4 views
0

GenTLB.exe를 사용하여 .tlb 및 _TLB.pas 파일로 ridl 파일을 컴파일하고 있습니다.왜 GenTLB 기호 이름 바꾸기 ('_'추가)

결과 _TLB.pas 파일에는 이름 끝에 밑줄을 추가하여 여러 기호의 이름을 바꾼다는 힌트가 있습니다.

힌트의 샘플은 다음과 같습니다

// Errors: 
// Hint: Symbol 'Assign' renamed to 'Assign_' 
// Hint: Enum Member '_amStretch' of 'EnumVRSAppliedMaterial' changed to '_amStretch_' 
// Hint: Enum Member '_amTile' of 'EnumVRSAppliedMaterial' changed to '_amTile_' 

내가 GenTLB와 함께 사용하는 명령 줄은 다음과 같습니다

GenTLB -P -Pt+ <ridl file> 

는 내가뿐만 아니라 tlibimp 도구를 사용하는 경우 같은 문제가 발생하는 얻을.

답변

3

할당명은 tlibimp.sym의 매핑으로 인해 이름이 tlibimp 인 동일한 디렉토리에있는 INI 형식 텍스트 파일로 변경됩니다.

또 다른 로직은 이전 글로벌 이름과 관련하여 고유 한 이름이 될 때까지 '_'을 계속 추가합니다. tlibimp이 발견되었습니다. 모든 열거 형 멤버는 전역으로 해석됩니다. 생성 된 .pas 파일에 _amTile 등의 다른 인스턴스가 있습니까?

+0

고맙습니다. 할당 이름 변경은 불쾌한 작은 함정입니다.이를 피하는 최선의 방법을 결정해야합니다. 예. 생성 된 .pas 파일에 _amTile의 또 다른 인스턴스가 있습니다. ridl 코드를 생성 할 때 몇 가지 사항을 두 배로 늘린 것처럼 보입니다 .-( –

5

잘 모르겠지만 이름과 충돌하는 이름 (예 : 동의어)은 이름 앞에 밑줄이 자주 추가됩니다. 그럴 수 있습니다.