本质上,我想创建一个新进程并从父进程为其定义环境。我想使用CreateProcessW
并将(修改后的)UNICODE 环境传递给lpEnvironment
,但我不确定与 ANSII 环境块相比内容应该是什么样子。
我真正找到的唯一文档是在 MSDN 上:
请注意,ANSI 环境块由两个零字节终止:一个用于最后一个字符串,另一个用于终止该块。Unicode 环境块由四个零字节终止:两个用于最后一个字符串,另外两个用于终止块。
现在我试着
- 调用
GetEnvironmentStrings
并将其传递给子进程 - 调用
GetEnvironmentStringsW
并将其传递给子进程 - 使用我的附加环境字符串修改这些块并将其传递
他们都不工作
我真的只能lpEnvironment
开始NULL
让它工作,但现在我必须改变和恢复我父母的处理环境——这是要走的路吗?
(我也做了设置CREATE_UNICODE_ENVIRONMENT
)
谁能告诉我环境块有什么特别之处UNICODE
- 它确实有效,当我只是使用ASCII
东西并打电话时CreateProcessA()
......