[DllImport(“DoSomething.dll”,EntryPoint =“something_dump”,SetLastError = true)] private static extern void something_dump(IntPtr dumper);
当我在XP机器上运行这个DLLImport时,它可以正常工作但是在vista上我收到了异常:
无法加载DLL'DoSomething.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)
在两台机器上,它位于Windows / System32目录中,但出于某种原因,vista不会加载它。
当我完全符合vista机器上的路径时... DllImport(“C:\ WINDOWS \ system32 \ DoSomething.dll”......它有效!
我是否真的必须告诉vista机器上的DLLImport函数查看system32目录?
答案 0 :(得分:0)
问题是有人正在将dll应用到当前的解决方案输出目录......问题是他们没有将dll的依赖项复制到输出目录......所以不知何故XP可以解决这些依赖关系并且Vista会失败。 (两个操作系统上的dll完全相同)
解决方案:删除系统dll的复制到当前解决方案输出目录......
答案 1 :(得分:0)
将Dll放入“文档设置\管理员”这个工作路径。
请注意,您还需要将所有支持文件示例.ino或.txt文件支持到该dll。
它会正常工作。
一切顺利。
此致 Prasath