ISOC++で書かれたライブラリがあります。Winapi、TCHARなどは使用しません。現在、文字セットがUnicodeに設定された静的ライブラリとして構築しています。私はそれを他のライブラリにリンクするつもりです。それらのいくつかはUnicodeを使用して構築され、いくつかはMBCSです。
この場合、2つの構成を作成し、2つのバージョン(MBCSとUnicode)を構築する必要がありますか?
ISOC++で書かれたライブラリがあります。Winapi、TCHARなどは使用しません。現在、文字セットがUnicodeに設定された静的ライブラリとして構築しています。私はそれを他のライブラリにリンクするつもりです。それらのいくつかはUnicodeを使用して構築され、いくつかはMBCSです。
この場合、2つの構成を作成し、2つのバージョン(MBCSとUnicode)を構築する必要がありますか?
これは問題ではありません。utf-16でエンコードされたUnicode文字列を使用するコードはwchar_t*を使用し、従来の8ビットエンコーディングを使用するコードはchar*を使用します。コンパイラとリンカの両方にとって明確です。設定が存在する唯一の理由は、Windowsヘッダーと非標準<tchar.h>
に、typedef(TCHARなど)をUNICODEおよび_UNICODE#definesによってガイドされるこれらの文字列タイプのいずれかに変換するマクロが含まれているためです。
もちろん、文字列にchar *を使用するプログラムからこのライブラリを使用すると、非常に大きな問題になります。プログラムは文字列を翻訳する必要がありますが、キャストは翻訳しないことに注意してください。