4

次のような文字列のマクロがあります。

#define APPNAME "MyApp"

次に、次のようにして、このマクロを使用して幅の広い文字列を作成します。

const wchar_t *AppProgID = APPNAME L".Document";

ただし、これにより「不一致の文字列を連結する」コンパイルエラーが生成されます。

APPNAMEマクロをワイド文字列リテラルに変換する方法はありますか?

4

2 に答える 2

12

試しましたか

#define APPNAME "MyApp"

#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)

const wchar_t *AppProgID = WIDEN(APPNAME) L".Document";
于 2009-11-06T20:17:06.100 に答える
0

マクロなし:

const wchar_t *AppProgID = L"" APPNAME ".Document";
于 2022-01-23T14:25:45.077 に答える