小编Sha*_*mmi的帖子

通过CreateProcess启动时,cl.exe似乎没有写入权限

我正在调用CreateProcess来启动cl.exe(Win7 64位上的VS2010).我收到以下错误..

cl:命令行错误D8037:无法创建临时il文件; 清除旧的il文件的临时目录

在cmd窗口中使用相同的环境变量调用相同的命令行会成功.我检查了临时目录,没有旧文件.看起来创建的进程没有写权限.我一直在尝试不同的方法.. CreateProcessAsUser,设置安全属性以授予Everyone用户组的所有标准权限,包括和不包含继承句柄等.它们似乎都没有解决它.

这是基本代码......

SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof( SECURITY_ATTRIBUTES );
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = NULL;

const char* _szSourceFile = "c:\\temp\\test\\src\\foo.cpp";

char szOptions[ 2048 ];
sprintf_s( szOptions, 
    "c:\\temp\\compile\\cl.exe "
    "/Gd "
    "/Fo\"c:\\temp\\test\\out\\\" "
    "/Fe\"c:\\temp\\test\\out\\\" "
    "/Fd\"c:\\temp\\test\\out\\\" "
    "/D \"WIN32\" "
    "/D \"_DEBUG\" "
    "/D \"_WINDOWS\" "
    "/D \"_USRDLL\" "
    "/D \"_WINDLL\" "
    "/D \"_MBCS\" "
    "/I\"c:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include\" "
    "/MDd "
    "/I\"c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\" "
    "/LDd "
    "%s "
    "c:\\temp\\test\\lib\\Uuid.Lib "
    "c:\\temp\\test\\lib\\oldnames.lib …
Run Code Online (Sandbox Code Playgroud)

c permissions createprocess cl.exe

3
推荐指数
1
解决办法
2953
查看次数

标签 统计

c ×1

cl.exe ×1

createprocess ×1

permissions ×1