Vista DLLImport问题C#

时间:2009-08-20 18:54:32

标签: c# windows-vista dllimport

[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目录?

2 个答案:

答案 0 :(得分:0)

问题是有人正在将dll应用到当前的解决方案输出目录......问题是他们没有将dll的依赖项复制到输出目录......所以不知何故XP可以解决这些依赖关系并且Vista会失败。 (两个操作系统上的dll完全相同)

解决方案:删除系统dll的复制到当前解决方案输出目录......

答案 1 :(得分:0)

将Dll放入“文档设置\管理员”这个工作路径。

请注意,您还需要将所有支持文件示例.ino或.txt文件支持到该dll。

它会正常工作。

一切顺利。

此致 Prasath