引用 .dll 文件时出现错误消息
Posted
技术标签:
【中文标题】引用 .dll 文件时出现错误消息【英文标题】:Error Message when Referencing .dll Files 【发布时间】:2012-02-18 18:26:05 【问题描述】:我想在我的 XNA 游戏中使用 DirectInput,但是在引用 .dll 文件时我遇到了问题。我正在使用 Microsoft Visual Studio C# Express Edition。这正是我所做的:
右键单击“参考” 选择“添加参考” 导航到 .dll 文件并点击确定然后我收到以下错误:
如上所述,我想引用 Microsoft.DirectX.DirectInput 命名空间,但我不知道它在哪个 .dll 文件中,所以我只选择了“d3dref9.dll”。该目录下的每个 .dll 文件都不起作用,所以我选择的任何一个都给我同样的错误。现在我已经能够使用其他 .dll 文件来完成此操作,但由于某种原因,DirectX 文件无法正常工作。我知道这可能是因为 this 的人只是查看了他代码中的第二行。
我安装了 DirectX SDK 为什么我不能引用任何 .dll 文件,我怎样才能做到这一点?
谢谢!
【问题讨论】:
这些是本机 DLL。您需要找到托管的。它应该命名为“Microsoft.DirectX.DirectInput.dll” 【参考方案1】:这里的问题是您正在添加对本机 DLL 的引用,而托管项目仅支持托管 DLL。我相信您正在寻找的 DLL 是 Microsoft.DirectX.dll
。它具有 DirectX 的托管包装器
【讨论】:
“Microsoft.DirectX.dll”的位置在哪里?我有 2010 年 6 月的最新 DirectX SDK 版本microsoft.com/download/en/details.aspx?id=6812 @MrSplosion 我不太确定。找到它的最快方法是从 SDK 根目录中搜索Microsoft.DirectX.dll
。如果它不存在,那么我会尝试 .Net SDK 文件夹,因为它可能会在那里安装 DLL
@MrSplosion 从这个线程social.msdn.microsoft.com/Forums/eu/vssetup/thread/… 看起来他们将位于根 SDK 文件夹下的“.\Developer Runtime\x86\DirectX for Managed Code”文件夹中。【参考方案2】:
我认为您正在尝试引用不是 .NET 程序集和/或不是 COM 库的 .dll。
This link 可能有助于定位propper .dll:
(从链接的帖子复制/粘贴:)
您需要做的是添加正确的 DLL 作为对您的 项目。由于它们不在列表中,因此您必须添加它们 手动。我假设您使用的是十月 SDK?
你需要做的是:
右键单击参考文件夹,然后选择“添加参考...” 在 .NET 选项卡上,选择“浏览”按钮。 导航到安装 SDK 的位置。 (在我的机器上是 C:\Program Files\Microsoft DirectX 9.0 SDK) 您要查找的文件应位于“.\Developer Runtime\x86\DirectX for Managed Code”中 选择所需的 DLL(在本例中为 Microsoft.DirectX.dll、Microsoft.DirectX.DirectInput.dll)
【讨论】:
我从这里获得了 2010 年 6 月的版本:microsoft.com/download/en/details.aspx?id=6812 我认为这是最新的版本。我发现的唯一 10 月版本是 2008 年发布的。为什么要在 2010 年 6 月是最新版本时安装它?我问是因为使用我的版本,“DirectX for Managed Code”目录不存在,我找不到它。 也许他们从那时起改变了目录布局。您是否尝试在驱动器中搜索“Microsoft.DirectX.DirectInput.dll”?以上是关于引用 .dll 文件时出现错误消息的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Visual Studio 2010 调试 dll (C++) 时出现错误消息
在 C# 中使用 user32.dll 时出现问题(错误 1008 尝试引用不存在的令牌。)
失败 - 下载 Ionic.Zip.dll 制作的 zip 文件时出现网络错误
启动eclipse时出现“Failed to load the JNI shared library jvm.dll”错误及解决