Visual Studio (Visual C++) 2013 で作成したスタティックライブラリ(.lib)を、C++Builder XE3 のプロジェクトに組み込みたいのだが、無理のようだ。

VC は COFF というオブジェクトフォーマットを採用しており、一方で、C++Builder は OMF を採用している。このため、単純に、VC の .lib を C++Builder に組み込んでリンクしようとすると、

[ilink32 エラー] Error: '...\HOGE.LIB' には無効な OMF レコード (タイプ 0x21) が含まれています (COFF の可能性もあります)
というエラーとなってリンクできない。

形式が違うのなら変換すればいいじゃない、ということで、C++Builder に付属の coff2omf.exe を使おうとするものの、これは通常のスタティックライブラリを変換するためのツールではなく、インポートライブラリを変換するためのものなので、うまくいかない。

サードパーティーのツールはどうか。objconv を試してみた。

ojbconv -fomf in.lib out.lib
のようにして使ってみたものの、警告がたくさん表示された。結果の .lib を C++Builder に組み込むと、

[ilink32 エラー] Fatal: EXTDEF フィックスアップ インデックス (モジュール 'xxx_00.obj' 内) は無効です
というエラーになってうまくいかない。

DLL を使うしかないか……。