2010-02-02 83 views
4

我正在用C#编写一个小的AOL IM应用程序。我有我需要的所有DLL,我已经能够编译和运行我的应用程序。但是,当它运行我得到说c#dll找不到

错误“无法加载DLL‘acccore.dll’:指定的模块找不到(异常来自HRESULT:0x8007007E)”

我明白,这意味着找不到acccore.dll文件,但我不知道为什么。我尝试将它放在C:\ Windows \ System32中,它也在Visual Studio中生成项目时创建的调试目录中。任何人都可以告诉我如何让我的应用程序知道这个DLL位于何处?

谢谢!

+0

从VS运行或通过.msi进行安装后,是否出现此错误? – 2010-02-02 23:17:38

+1

另外,请确保在您使用Depends(http://dependencywalker.com/)打开accore.dll时没有错误。 – 2010-02-02 23:20:46

+0

我从VS – beyerss 2010-02-02 23:21:58

回答

0

我用dependancywalker找到我失踪,导致它错误的DLL。这是Taylor Leese在评论中提出的。

0

这是一个DLL的程序集?

如果是这样,那么fuslogvw会告诉你CLR在哪里寻找组件。把它放在.net正在寻找的地方

0

.NET程序集需要位于应用程序目录(或其子目录之一,尤其是如果它们表示不同程序集的本地化版本),或者在GAC(全局程序集)如果DLL与.EXE不在同一个目录中,那就是你的问题。如果是,它仍然不起作用,这意味着由于某种原因组件不匹配。

4

我做了一些研究,它看起来像acccore.dll是一个COM DLL文件。这意味着你需要运行:

regsvr32.exe C:\Windows\System32\acccore.dll 

这将COM DLL注册到注册表,就可以使用该DLL的.NET代码。退房的链接:

http://64.12.130.129/forum?c=showthread&ThreadID=1173

所以,你需要使用P/Invoke来使用DLL(我猜AOL SDK已经可以使用一些示例代码)。