SQLite3學習與Wince下文件絕對路徑

昨天在wince6.0下編譯sqlite3.7.14生成了dll和lib,並拷貝到wince設備相應的目錄下進行測試。

(如果編譯3.7.14庫文件的話參考:http://blog.csdn.net/feihu521a/article/details/8129612

今天測試的時候總提示:no such table.....,google一下才明白,因爲sqlite打開文件時沒有的話會自己創建一個同名文件,而新建的當然沒有table了。這個是由於wince下沒有相對路徑只有絕對路勁引起的,也就是沒有哦找到對應的.db文件。WinCE提供了GetModuleFileName系統API來獲取可執行程序的完整路徑與文件名。

函數原型:

DWORD GetModuleFileName(
                        HMODULE hModule,  // 將要得到的模塊的句柄。如果是當前模塊,NULL
                        LPTSTR lpFilename,  // 得到的文件名
                        DWORD nSize       //  一般MAX_PATH就可以了
                        );

經過測試://獲取當前文件的絕對路徑
void GetCurrentDirectory(CString &strPath) 
{ 
 wchar_t pBuf[256]; 
 GetModuleFileName(NULL,pBuf,MAX_PATH); 
 strPath=pBuf; 
 strPath = strPath.Left(strPath.ReverseFind('\\') + 1); 
}

發佈了41 篇原創文章 · 獲贊 27 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章