列挙時にTCHARでファイル名を獲得しているのですが、それをどうやったらchar型に変換するのかが分かりません。
どなたか解決方法をお分かりになる方は、よろしければご回答していただきたいと思います。
一部ソース(winproc)を載せておきます。
char jpeg[3][100] = { " ", " ", " "} ;//ファイル名格納用配列
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
static HDC hDC, hCompatDC;
HANDLE hSearch, hFile;
WIN32_FIND_DATA fd;
TCHAR filename[MAX_PATH+10];
DWORD writeSize;
switch(uMsg){
case WM_LBUTTONDOWN: // マウスの左ボタンが押されたときに送られてくる
ii++;
if(ii==3){
ii=0;
}
InvalidateRect( hWnd, NULL, TRUE );
return 0;
case WM_PAINT:
hdc=GetDC(hWnd);
hMain=CreateCompatibleDC(NULL);
//GetHandle("test1.jpg",hWnd,hdc);
GetHandle(jpeg[ii],hWnd,hdc);//画像の読み込み
hdc=GetDC(hWnd);
hdc=BeginPaint(hWnd,&ps);
BitBlt(hdc,0,0,bitmap.bmWidth,bitmap.bmHeight,hMain,0,0,SRCCOPY);
EndPaint(hWnd,&ps);
return 0;
///////////////////////////////////
case WM_CREATE: // ウィンドウが作成されたとき
// ファイルを新規作成
hFile = CreateFile(
_T("filelist.txt"), GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL
);
if( hFile == INVALID_HANDLE_VALUE )
{
return 0;
}
// 全てのファイルを列挙する
//確認のためtextファイルに書き出し
hSearch = FindFirstFile( _T("*.jpg"), &fd );
if( hSearch == INVALID_HANDLE_VALUE )
{
return 0;
}
while( TRUE )
{
// 列挙されたファイル名を書き出す
_tcscpy( filename, fd.cFileName ); // ファイル名をバッファにコピー
_tcscat( filename, _T("\r\n") ); // 末尾に改行文字を加える
WriteFile(
hFile, filename, (DWORD)(_tcslen(filename)*sizeof(TCHAR)),
&writeSize, NULL
);
jpeg[ii][100]=filename;
ii++;
if( !FindNextFile( hSearch, &fd ) )
{
if( GetLastError() == ERROR_NO_MORE_FILES )
{
MessageBox( hWnd, _T(filename), _T("終了"), MB_OK );
break;
}
else
{
MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK );
break;
}
}
}
FindClose( hSearch );
CloseHandle( hFile );
return 0;
/////////////
case WM_DESTROY:
DeleteDC(hMain);
DeleteObject(hBitmap);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
jpeg[ii][100]=filename;
ii++;
if( !FindNextFile( hSearch, &fd ) )
{
if( GetLastError() == ERROR_NO_MORE_FILES )
{
MessageBox( hWnd, _T(filename), _T("終了"), MB_OK );
break;
}
else
{
MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK );
break;
}
}
}
FindClose( hSearch );
CloseHandle( hFile );
return 0;
/////////////
case WM_DESTROY:
DeleteDC(hMain);
DeleteObject(hBitmap);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}