我正在调试一个 64 位应用程序,其中 c# exe 使用本机 c++ dll,在 Windows 7 上。这两个应用程序的环境变量似乎不同,即使它们都在同一进程中执行。调用 System.Environment.SetEnvironmentVariable 怎么可能对 getenv() 返回的值没有影响?
环境变量只是一个数据块,在进程启动时由窗口传递给进程。您正在使用的运行时函数(用于 System.Environment 的 BCL 和用于 getenv 的 CRT)可能会在启动期间复制环境,这意味着它们不在相同的“环境”变量上运行。
从概念上讲,他们必须这样做,因为否则需要某种方法来同步他们访问环境。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)