我正在使用DllImport从我的C#应用程序访问C++ DLL中的一些函数.
这个代码在我的开发笔记本电脑上工作正常,这是Windows 7 64位,dll本身是32位,所以我运行托管dbit在32位的进程,它运行良好.但是,当我尝试在我的目标计算机上运行完全相同的进程时,Windows 7 64bit Ultimate我得到错误"无效访问内存位置".从过程中.
我不确定问题是什么,我看了网上的大量资源,但没有一个能为我解决.我不明白为什么它在我的开发盒上工作正常,但不在目标上?
dll本身很好,dll附带的示例都可以在我的目标框中正常工作(这是C#应用程序正在执行DllImport).
有没有其他人有这个问题?现在已经打了两天了!
例外: {"Unable to load DLL 'CLEyeMulticam.dll': Invalid access to memory location. (Exception from HRESULT: 0x800703E6)"}
我以前也遇到过这个问题。我认为你的问题是 VS 尝试打开该文件但没有读取它的权限。您需要确保您使用的帐户有权访问该 DLL。尝试禁用 UAC 以查看其是否有效,或使用管理员帐户。或者尝试Full Control将 DLL提供给Everyone.
编辑:你能以管理员身份运行VS吗(右键单击->以管理员身份运行)?你能把DLL放到你的桌面上试试吗?您的工作计算机和故障计算机之间的文件夹结构是否存在差异?另外,如果你在VS之外执行DLL,它可以正常运行吗(也可以尝试以管理员身份运行它)?
华泰