将它放在System的目录下时,我的DLL无法正常工作

时间:2013-09-16 09:59:55

标签: .net windows dll com c++-cli

我编写了一个从第三方应用程序(使用VBA进行脚本编写)加载的COM DLL。

启动时,应用程序将一个值传递给DLL,以便之后找到它的实例。

此(非托管)值是我创建static和全局(它在任何类之外)的应用程序的特定类型。

DLL在注册表中正确注册(regasm),第三方应用程序正确加载DLL。

将DLL放在系统目录(即System32或SysWoW64)上。

在Windows XP中,DLL的工作方式类似于魅力,但在Windows 7(64位)中,存在一个问题:静态值变为空!但是,DLL的其余部分运行良好,只是这个值有问题。

另一方面,当我们将DLL放在非系统的文件夹中时,它没问题。

我认为GC破坏了价值,但这是不可能的,因为存在静态和非管理。

GC的问题是什么?为什么系统文件夹不起作用(即使有管理员权限)?是否有Windows7专业?

1 个答案:

答案 0 :(得分:0)

现在问题很明显:错误是第三方应用程序,而不是我的代码。当我们将DLL放入System的文件夹时,发生了一些奇怪的事情。