iam 使用 regasm.exe 生成 tlb 文件并以编程方式注册程序集。但是 tlb 的路径在 .NET 根目录本身中。所以这样做
缓冲区包含c:\windows\Microsoft.Net\framework\v2.0.57\RegAsm.exe
if(!CreateProcessW(buffer,L" C:\\Program Files\\Test\\Test.dll /codebase /tlb /silent" ,NULL, NULL,FALSE, 0,NULL,NULL,(LPSTARTUPINFOW)&si,&pi ) )
但我认为它不会采用完整路径,因为有一个空白的黑白程序和文件。正如预期的那样,当我运行命令时它也显示无法定位输入程序集 c:\program。
通常在命令提示符下我们可以给出
RegAsm.exe "c:\program files\Test\test.dll"/codebase/tlb 这个粗体字符我必须作为命令行传递,但它有双引号和双引号。所以我很震惊。
我该如何解决
最佳答案
您需要在字符串 中用引号将路径括起来,您可以通过在引号前面加上反斜杠来转义引号字符来实现。因此,您的 CreateProcessW 的第二个参数将是:
L"\"C:\Program Files\Test\Test.dll\" /codebase /tlb /silent"
这将为您提供带引号的命令行,您将在命令提示符处使用它。
关于c++ - 如何将目录路径作为进程的命令行传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177323/