今天為了這個搞到快瘋掉。
最後的成果是這樣的:
ILenum GetILImageType(const char* filename)
{
string name_ext = PathFindExtension(filename);
std::transform(name_ext.begin(), name_ext.end(),name_ext.begin(), ::toupper);
if(name_ext.compare(".JPEG") == 0)
return IL_JPG;
if(name_ext.compare(".JPG") == 0)
return IL_JPG;
........
return IL_TYPE_UNKNOWN;
}
看起來很簡單是吧!?其實有夠痛苦!
LPTSTR PathFindExtension(
LPCTSTR pPath
);
要加include,沒問題,很直覺
#include <shlwapi.h>
結果,link時過不了,頭超大,幸好後來找到這個:
#pragma comment(lib, "Shlwapi.lib")
然後白忙了半天發現,char* 可以直接轉成LPCTSTR,LPCTSTR也可以直接轉成 string。真方便。
接下來也是痛苦,要全轉成大寫居然是件這麼困難的事!
std::transform(name_ext.begin(), name_ext.end(),name_ext.begin(), ::toupper);
這個可以,不過也要include
#include <algorithm>
然後要做String 的比對,看半天才知道要用compare。
真的是,講沒幾分鐘...寫起來真是要人命!