- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 CreateProcess 从 C++ 应用程序执行外部进程。
启动的应用程序在查找其目录中存在的 dll 时失败。
使用 Process Explorer(来自 sysinternals)检查 executwd 进程显示进程工作目录是 c:\windows,而不是父工作目录。
使用 lpCurrentDirectory 对工作目录进行硬编码也无济于事。
进程确实使用系统命令正确执行。
biên tập 有问题的目录不是模块目录,而是当前工作目录。
模块目录按预期搜索,但不包含 dll(将 sll 复制到模块目录是可行的 - 但它是一种解决方法)
1 Câu trả lời
当您使用 CreateProcess 函数时,搜索的第一个目录是包含用于创建调用进程的图像文件的目录。这允许找到与进程关联的私有(private)动态链接库 (DLL) 文件,而无需添加进程的已安装目录到 PATH 环境变量。如果找不到Dll文件,系统会在系统文件夹中搜索这些文件,例如system32或%windir%。
可以使用 SetDllDirectory 函数更改搜索路径。建议使用此解决方案,而不是使用 SetCurrentDirectory 或硬编码 DLL 的完整路径。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682600%28v=vs.85%29.aspx
关于c++ - CreateProcess 忽略 lpCurrentDirectory/父工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224271/
我想启动一个进程(exe 文件),如果我将完整路径附加到我的命令行(lpCommandLine 参数),一切都很好,但如果我将 lpCurrentDirectory 设置为 [STARTDIR],系统
我目前正在尝试使用 CreateProcess() API 启动一个进程: http://msdn.microsoft.com/en-us/library/windows/desktop/ms6824
我正在尝试使用 CreateProcess 从 C++ 应用程序执行外部进程。 启动的应用程序在查找其目录中存在的 dll 时失败。 使用 Process Explorer(来自 sysinterna
Tôi là một lập trình viên xuất sắc, rất giỏi!