win7上C#控制台程序(称为A)调用了MFC规则dll(称为B),该dll又静态链接了另一个MFC规则dll(称为C)。现在将B和C放在 一个目录dirB中,C#程序在目录dirA中,将dirB路径添加到系统环境变量path中,运行A会提示找不到dll B。首先请别问我为什么要把dll和控制台程序放在不同目录,我只是在其它环境中遇到类似问题,然后用C#程序测试是否存在相同问题,然后真的能重现出该 问题。然后更让人迷惑的地方是下面。
当我注销系统重新登录(或者重启),在上面的环境中,运行程序A,正常执行。接着我把dirB改成别的目录名,比如dirC,然后把环境变量上path路 径也改为dirC(或者删掉原目录,新建目录dirC),运行程序也正常。按理说,之前第1次添加完环境变量没起作用,我现在也是新的目录,为什么环境变 量起作用了。