Eng*_*ine 0 c directshow visual-studio-2010
我有一个项目,其中一个函数使用 LPCOLESTR 类型的参数
HRESULT BuilGraph(IGraphBuilder *pGraph,LPCOLESTR dstFile)
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用 argv[1] 并将其放入 dstFile 中,我尝试过:
LPCOLESTR somevar =OLESTR(argv[1]) ;
Run Code Online (Sandbox Code Playgroud)
感谢 Roman 和 Joachim,我对代码做了一些修改,现在看起来像这样: char pathstuff[50]; sprintf(pathstuff,"C:\Users\engine\Desktop\engine%s.avi",argv[1]);
所以我得到了路径视频名称,知道 argv[1] 将是一个数字,我如何将其转换为
LPCOLESTR ???
Run Code Online (Sandbox Code Playgroud)
它不起作用,任何想法如何解决这个问题。提前致谢。
LPCOLESTR是 的另一个名称const WCHAR*,所以你需要进行转换(对此有很多问题)。如果您使用 ATL 或 MFC,则可能会像这样简单:
CString sValue(argv[1]);
USES_CONVERSION;
BuilGraph (CT2COLE(sValue), ...);
Run Code Online (Sandbox Code Playgroud)
mbstowcs对于纯 C,您将按照 Joachim 的建议使用,或直接使用 API - MultiByteToWideChar。
更新:
wchar_t pathstuff[50];
swprintf(pathstuff, L"C:\\Users\\engine\\Desktop\\engine%hs.avi", argv[1]);
LPCOLESTR x = pathstuff;
Run Code Online (Sandbox Code Playgroud)