我应该补充:无论如何,您都不应该将dll放入\ system32 \!修改您的代码,修改您的安装程序...在c:\ windows \下找到您的存放位置
例如,您的安装程序将您的dll放入:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
(注意:您实际执行此操作的方法是使用环境var:%ProgramFiles%或%ProgramFiles(x86)%查找Program Files的位置。 ..)
然后设置一个注册表标记:
HKLM\software\<your app name>
-- dllLocation
使用您的dll的代码读取注册表,然后动态链接到该位置的dll。
以上是明智的做法。
您永远不会将dll或第三方dll安装到\ system32 \或\ syswow64中。如果必须静态加载,可以将dll放在exe目录中(可以在其中找到它们)。如果您无法预测exe目录(例如,其他某个exe将调用您的dll),则可能必须将dll目录放入搜索路径(如果可能,请避免这样做!)
system32和syswow64适用于Windows提供的文件... 不适用于其他人的文件。人们习惯于将东西放在那里的坏习惯的唯一原因是,它总是在搜索路径中,并且许多应用程序/模块都使用静态链接。(因此,如果您真正了解它,真正的缺点就是静态链接-这是本机代码和托管代码中的缺点-始终始终总是动态链接!)