我正在尝试使用 C++ 中的 UrlCreateFromPath()
函数将文件路径转换为 fileUrl。
以下代码尝试将文件路径转换为 fileUrl
PCTSTR lpszUnicode = L"C:\\Users\\TBD\\Downloads\\index.html";
PTSTR output =L"C:\\Users\\TBD\\Downloads\\index.html";
DWORD dwDisp = 0;
DWORD dw2 = 0;
LPDWORD lpdwDisp = &dwDisp;
HRESULT res2 = UrlCreateFromPath(lpszUnicode, output, lpdwDisp, dw2);
std::wstring newOutput(output);
但是 res2 总是显示 InvalidArgs。我在上面的代码快照中做错了吗?
最佳答案
你实际上写入常量缓冲区(这是错误的)
PCTSTR lpszUnicode = L"C:\\Users\\TBD\\Downloads\\index.html";
//PTSTR output =L"C:\\Users\\TBD\\Downloads\\index.html"; cannot do that way
TCHAR output[MAX_PATH]; // allocate buffer in memory (stack)
DWORD dwDisp = MAX_PATH; // max posible buffer size
LPDWORD lpdwDisp = &dwDisp;
HRESULT res2 = UrlCreateFromPath(lpszUnicode, output, lpdwDisp, NULL);
std::wstring newOutput(output);
你为什么要这么做
LPDWORD lpdwDisp = &dwDisp;
你可以简单地这样做
HRESULT res2 = UrlCreateFromPath(lpszUnicode, output, &dwDisp, dw2);
关于c++ - InvalidArgs 尝试在 C++ 中使用 UrlCreateFromPath 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33972646/