Win32API質問箱 Build43
■ このスレッドは過去ログ倉庫に格納されています
0218デフォルトの名無しさん
2006/05/25(木) 11:53:05winnt.hの中で、
typedef WCHAR *LPWSTR, *PWSTR;
typedef CHAR *LPSTR, *PSTR;
となっている。
んで、マルチバイト環境では、LPTSTRはLPSTR(TCHARはchar)と解釈され、
ワイド文字環境では、LPTSTRはLPWSTR(TCHARはwchar_t)と解釈される。
APIの関数も、GetCurrentDirectoryの場合、
リファレンスでは
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer);
となっているが、実際winbase.hの中では、
DWORD GetCurrentDirectoryA(DWORD nBufferLength, LPSTR lpBuffer);
DWORD GetCurrentDirectoryW(DWORD nBufferLength, LPWSTR lpBuffer);
の2つの関数が宣言されており、
これを環境に応じて、GetCurrentDirectoryAとGetCurrentDirectoryWを切り替えている。
コード書く奴は、LPTSTRとWCHARを巧く利用せんとね。
あと、スレ違いだが、
#include <tchar.h>
#include <clocale>
#include <cstdio>
void _tmain(void){
_tsetlocale(LC_ALL, _T("jpn"));
_tprintf(_T("Hello World!\n"));
}
この説明をしているサイトが少ないかも。
■ このスレッドは過去ログ倉庫に格納されています