開発環境 |
Microsoft Visual C++ 2010 Express (SP1) |
実行環境 |
Microsoft Windows XP Home Edition (SP3) |
プロジェクトの種類 |
Win32 コンソール アプリケーション |
プロジェクト名 |
test |
アプリケーションの種類 |
コンソール アプリケーション |
追加のオプション |
空のプロジェクト |
文字セット |
Unicode |
Shift_JISに変換できないファイル名等を扱うためにUnicode対応が必要である。
また、セキュリティ強化関数の冗長化を防ぐためにC++のテンプレートオーバーロードを利用する。
C++でビルドするには拡張子をcppにする。
test.cpp
#include <fcntl.h> // _O_WTEXT
#include <io.h> // _setmode
#include <stdio.h> // _fileno
#include <tchar.h> // _tmain
#include <Windows.h>
int _tmain()
{
TCHAR atcPath [_MAX_PATH];
TCHAR atcDrive[_MAX_DRIVE];
TCHAR atcDir [_MAX_DIR];
TCHAR atcFName[_MAX_FNAME];
TCHAR atcExt [_MAX_EXT];
_setmode(_fileno(stdout), _O_WTEXT);
GetModuleFileName(NULL, atcPath, _countof(atcPath));
_tsplitpath_s(atcPath, atcDrive, atcDir, atcFName, atcExt);
_tprintf(_T("[%s][%s][%s][%s]\n"), atcDrive, atcDir, atcFName, atcExt);
return 0;
}
実行
[C:][\hoge\][♥][.exe]
最終更新:2012年09月01日 16:49