[VC++] #defineとLプレフィックスを同時に使いたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
びす
記事: 31
登録日時: 14年前

[VC++] #defineとLプレフィックスを同時に使いたい

#1

投稿記事 by びす » 10年前

お世話になっております。
#defineによるマクロとLプレフィックスによるワイド文字指定は同時に使えないのでしょうか?

コード:

void main(){
  MessageBoxA( 0, "hello", 0, 0);
  MessageBoxW( 0, L"hello", 0, 0);
}
これを

コード:

#define HELLO "hello"
void main(){
  MessageBoxA( 0, HELLO, 0, 0);
  MessageBoxW( 0, LHELLO, 0, 0); // だめ
}
このように書き換えたいです。
混在してる状況がおかしいと言われればそれまでですが(^^;
よろしくおねがいします。

(2:20編集: コードにセミコロンが混入してたのを削除)
最後に編集したユーザー びす on 2015年8月16日(日) 02:21 [ 編集 1 回目 ]

かずま

Re: [VC++] #defineとLプレフィックスを同時に使いたい

#2

投稿記事 by かずま » 10年前

こんなのはどうでしょうか?

コード:

#include <windows.h>

#define X(x) L##x
#define L(x) X(x)

#define HELLO "hello"

int main(void)
{
    MessageBoxA(0, HELLO, 0, 0);
    MessageBoxW(0, L(HELLO), 0, 0);
    return 0;
}

アバター
びす
記事: 31
登録日時: 14年前

Re: [VC++] #defineとLプレフィックスを同時に使いたい

#3

投稿記事 by びす » 10年前

返信ありがとうございます、挙げていただいた方法で見事解決しました!
こんな書き換えができるんですね、、勉強になりました><

閉鎖

“C言語何でも質問掲示板” へ戻る