我有一個自我註冊安裝在程序文件的文件夾中的COM可見dll(C++)以及appref-ms文件,該文件指向一次點擊應用程序。這個DLL的目的是允許從Windows資源管理器中的右鍵單擊菜單啓動一次點擊應用程序。獲取DLL路徑/字符串問題(C++初學者)
我正在修改現有代碼,它只使用wchar_t *來保存字符串,而我對C++的使用經驗非常有限。我正在使用以下命令獲取包含dll和appref-ms的文件夾的路徑。
std::wstring DllFolder() {
wchar_t buffer[MAX_PATH];
GetModuleFileName((HINSTANCE)&__ImageBase, buffer, MAX_PATH);
std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\\/");
return std::wstring(buffer).substr(0, pos);
}
...
const wchar_t* folder = DllFolder().c_str();
這幾乎可以工作,但驅動器號每次都是不同的。例子:
{:\項目\ MyAppName \ 64 \發佈 E:\項目\ MyAppName \ 64 \發佈 ○:\項目\ MyAppName \ 64 \發佈
有時是一個新行後:沒有信。
另一個問題:我持有啓動字符串在類成員wchar_t m_Launch[MAX_PATH*10]
。由於我不知道用戶會選擇多少文件,有沒有辦法動態調整它的大小?
謝謝您已經很清楚的解釋,這解決了這個問題。 – Coder1095 2013-04-30 10:04:22