在Windows Mobile和Windows Embedded CE開發過程中經常會遇到路徑問題。在論壇中還有不少人下面的問題。
“找不到檔案的異常”
其實這個問題很容易解決,路徑一般分為絕對路徑和相對路徑,下面講述如何查這些路徑。
絕對路徑
查絕對路徑,首先需要ActiveSync裝置。
右鍵點擊Explore
點擊 My Windows Mobile-Based Deivce
進入相應的路徑。注意路徑是以根目錄“\”開始的,沒有C盤,D盤的概念。
相對路徑
.NET Compact Framework
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName);
Native C++
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
HINSTANCE hInst = (HINSTANCE)hModule;
TCHAR pathChar[MAX_PATH];
memset(pathChar, 0 , sizeof(TCHAR) * MAX_PATH);
//Get exe path
GetModuleFileName(NULL, pathChar, MAX_PATH);
CString path(pathChar);
path = path.Left(path.ReverseFind('\\') + 1);
memset(pathChar, 0 , sizeof(TCHAR) * MAX_PATH);
//Get DLL path
GetModuleFileName(hInst, pathChar, MAX_PATH);
path = pathChar;
path = path.Left(path.ReverseFind('\\') + 1);
}
具體請參考
在Windows Mobile和Wince(Windows Embedded CE)下進行Native C++開發,如何取出當前執行檔案的路徑和調用模組的路徑
在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework 取當前運行檔案的路徑
相對路徑查問題的方法一般是取出路徑,然後和絕對路徑進行比較,找出產生路徑時的錯誤。