读书人

FreeEnvironmentStrings()解决方案

发布时间: 2012-03-30 17:32:09 作者: rapoo

FreeEnvironmentStrings()
FreeEnvironmentStrings 翻译指定的环境字串块
从百度搜出的。但我总觉得这个函数应该属于清空环境变量字符串值的。

这个函数有没有更具体一些的解释?最好有代码说明。

[解决办法]
可以看看Windows核心编程第四章
http://www.chmchm.com/book/dnjc/cxsj/hxbc/index.html

BOOL CreateProcess(
PCTSTR pszApplicationName,
PTSTR pszCommandLine,
PSECURITY_ATTRIBUTES psaProcess,
PSECURITY_ATTRIBUTES psaThread,
BOOL bInheritHandles,
DWORD fdwCreate,
PVOID pvEnvironment,
PCTSTR pszCurDir,
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo);
4.2.4 pvEnvironment

p v E n v i r o n m e n t 参数用于指向包含新进程将要使用的环境字符串的内存块。在大多数情况下,为该参数传递N U L L ,使子进程能够继承它的父进程正在使用的一组环境字符串。也可以使用G e t E n v i r o n m e n t S t r i n g s 函数:

PVOID GetEnvironmentStrings();
该函数用于获得调用进程正在使用的环境字符串数据块的地址。可以使用该函数返回的地址,作为C r e a t e P r o c e s s 的p v E n v i r o n m e n t 参数。如果为p v E n v i r o n m e n t 参数传递N U L L ,那么这正是C r e a t e P r o c e s s 函数所做的操作。当不再需要该内存块时,应该调用F r e e E n v i r o n m e n t S t r i n g s 函数将内存块释放:
BOOL FreeEnvironmentStrings(PTSTR pszEnvironmentBlock);

读书人网 >C++

热点推荐