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