なんか落ちそうになってきたので思いっきりageで書かせてもらいます(ホシュればよいのかも知らんが)。
dmcだと,コンパイラに-j0オプション指定してもUNICODEの文字列リテラルが直接書けないので,\u使って
文字コードで書かないと通らない。例えば,

 ;;MessageBoxW(NULL, L"こんにちは", L"Title", MB_OK);

なんて書くと,文字化けしてしまう。で,こんなアイデアはどうだろ? 一応動いてる。

> #include <windows.h>
> #include <tchar.h>
> #include <string>
> using namespace std;
> namespace { //無名namespace
> wstring MultiByteToWstr(const char* mbChar, UINT cp) //マルチバイト文字列から変換
> {
> //バッファサイズ取得
> int numChars = ::MultiByteToWideChar(cp, 0, mbChar, -1, NULL, 0);
> wchar_t* pWst = new wchar_t[numChars]; //バッファ確保
>
> //変換
> numChars = ::MultiByteToWideChar(cp, 0, mbChar, -1, pWst, numChars);
> wstring result = wstring(pWst);
> delete[] pWst;
> return result;
> }
> }
>
> #ifdef UNICODE
> #undef _T
> #define _T(str) MultiByteToWstr(str, 932).c_str()
> #endif
こんなヘッダを作っておく(cpは932決め打ちじゃなくてちゃんとやった方がいいけど)。