開発環境 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