タイプ ライブラリ内のシンボル名のマッピング
TLIBIMP.EXE への移動
タイプ ライブラリをインポートする際に、一部のタイプ ライブラリのカスタム マッピングは tlibimp.sym ファイルで指定されます。現在のマッピングは、これまでのリリースでのコード生成と異なる可能性があります。
これまでのリリースでは、既存の識別子を使って新しいタイプ ライブラリが追加された場合、識別子を区別するためにアンダースコア(_)が付加されました。そのため、Application という識別子は Application_ になりました。インポートされた別のタイプ ライブラリで同じ識別子が使用されていた場合には、アンダースコアが付加される可能性がありました。
C++Builder では、タイプ ライブラリ内のシンボル名のマッピングを(\BIN ディレクトリにある)tlibimp.sym ファイル内に記述することができます。tlibimp.sym ファイルには、Microsoft Word、Microsoft Excel、Microsoft PowerPoint、Microsoft Access といった一部のよくあるアプリケーションのマッピングが記述されています。たとえば、Microsoft Word オートメーションを実行する場合、これまで Application_ となっていたシンボルは今では WordApplication となります。
TLIBIMP.SYM の例
Microsoft Word ではシンボル名がどう再マッピングされるかを以下の例で示します。(コメントの後の)最初の行では、レジストリに記述されているサーバーの GUID(グローバル一意識別子)を指定しています。
[{00020905-0000-0000-C000-000000000046}:TypeNames]
残りの行では、(競合する識別子にアンダースコアを単に付加するのではなく、)キーを新しい値に再マッピングしています。
;;==============================================;; ;; Map WinWord CoClasses to better names ;; ;;==============================================;; [{00020905-0000-0000-C000-000000000046}:TypeNames] Application=WordApplication Document=WordDocument Font=WordFont ParagraphFormat=WordParagraphFormat OLEControl=WordOLEControl LetterContent=WordLetterContent Global=WordGlobal Selection=WordSelection Range=WordRange
インポートするタイプ ライブラリが所属する他のサーバーの競合シンボルをマッピングするために、tlibimp.sym ファイルを編集することができます。上記の例で示したのと同じ形式を使用します。
メモ: tlibimp.sym を編集する際には、注意が必要です。C++ または Pascal のメンバ名または型名の再マッピングがファイルの冒頭に現れる場合は、それを変更しないでください。