C ++ COMアプリケーションをUnicodeに移行しています。この移行の一環として、IDLの定数文字列もUnicodeに移行します。
問題は、現時点では、ANSIとUNICODEの両方でコンパイルしていることです。つまり、L"String"構造を使用して幅の広いグラフを宣言することはできません。
現時点では、文字列定数は次のように定義されています。
const LPSTR STRING_CONST_NAME = "STRING VALUE";
そして、次のように定義します。
const LP T STR STRING_CONST_NAME = "STRING VALUE";
通常のコードの場合は、UnicodeでコンパイルするときにL "STRING VALUE"に変換する_T( "STRING VALUE")マクロを追加するだけです。
しかし、私が見ることができることから、_Tは純粋なC ++構造であるため、IDLでは使用できません。
私たちのアプローチは正しいですか?何があっても、このように定義する必要があるかもしれません。
const LP T STR STRING_CONST_NAME = L "STRING VALUE";