我需要从对 的调用中提取环境字符串CreateEnvironmentBlock( out IntPtr lpEnvironment, IntPtr hToken, bool bInherit )
,以便根据变量名称及其值将它们放入字典中。
当此函数返回时,
lpEnvironment
接收指向新环境块的指针。环境块是一个以 null 结尾的 Unicode 字符串数组。该列表以两个空值 (\0\0
) 结尾。
我无法轻松使用,Marshal.Copy
因为我不知道块的长度。我想知道是否有一种简单的方法可以移动它或确定将哪些内容复制到我可以更轻松地转换的内容。一种想法是传递out IntPtr lpEnvironment
as out char [] lpEnvironment
。
有什么建议么?