在c++中传递的参数不完整



我只是想使用CreateProcess传递一个参数给另一个应用程序。当我在目的地得到参数时,它不完整,只有一部分被传递。输出是"1\Documentation\U3DElements.pdf"

这是传递实参的代码。(这是一个c++代码)

STARTUPINFO si;     
PROCESS_INFORMATION pi;
// set the size of the structures
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
LPTSTR cmdArgs = "C:\Users\vignesh.d\Downloads\sdk110_v1_win\Adobe\Acrobat XI SDK\Version1\Documentation\U3DElements.pdf";
// start the program up
if (CreateProcess(
        TEXT("C:\Users\vignesh.d\Documents\Visual Studio  2012\Projects\AdobePlugin\AdobePlugin\bin\Debug\AdobePlugin.exe"),
        cmdArgs,NULL,NULL,FALSE,
        CREATE_NEW_CONSOLE,
        NULL,
        NULL,
        &si,
        &pi))
{
    WaitForSingleObject(pi.hProcess, INFINITE);
}
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

这是我显示它的代码。(AdobePlugin.exe这是一个VB代码)

Private Sub App_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
    MsgBox(e.Args(2))
End Sub

我希望MsgBox显示完整代码"C:Usersvignesh"。

参数和参数之间用空格分隔。

MsgBox(e.Args(1))

给你论据的前半部分。

如果你想传递一个包含空格的参数,你需要把它放在引号里,像这样:

LPTSTR cmdArgs = ""C:\Users\vignesh.d\Downloads\sdk110_v1_win\Adobe\Acrobat XI SDK\Version1\Documentation\U3DElements.pdf"";

无论参数是否包含空格,都可以给它们加引号。

相关内容

  • 没有找到相关文章

最新更新