私たちの C++ プロジェクトは、(まだ) Treat wchar_t as Built-in: No (/Zc:wchar_t-)
VS6 でコンパイルされた当時のオプションを使用しています。
これは、 ( )wchar_t
の単なる typedef になります。unsigned short
WORD
これを変更しwchar_t
て、適切な組み込み型として処理されるようにしたいと考えています。これにより、(最新の) ライブラリの統合が大幅に容易になります。
問題は、再コンパイルできないいくつかの DLL にリンクしていて、それらの文字列を として公開しunsigned short*
、それらのヘッダーが を使用していることwchar_t*
です。wchar_t が組み込み型の場合、エクスポート シンボルが明らかに異なるため、リンカー エラーが発生します。
ヘッダーを変更するには、一種のキャスト レイヤーを追加する必要があります。これらのヘッダーのクラスを呼び出すすべてのコードにキャストを追加したくはありません。
wchar_t
DLL を修正して、それらのエクスポート シンボルが の代わりにビルトインをエクスポートするように "ふりをする" ようにすることは可能WORD
ですか? 結局、2 つの型は VC++ で 100% バイナリ互換です。
他のアイデアはありますか?