1

[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 目录中查找吗?

4

2 回答 2

0

问题是有人将 dll 复制到当前的解决方案输出目录...问题是他们没有将 dll 的依赖项复制到输出目录...所以 XP 可以以某种方式解决这些依赖项,而 Vista 会失败。(两个操作系统上的 dll 完全相同)

解决方法:去掉系统dll对当前解决方案输出目录的处理...

于 2009-08-21T16:10:49.420 回答
0

将你的Dll放到“document settings\administrator\”这个路径下即可工作。

请注意,您还需要将所有支持文件(例如 .ino 或 .txt 文件支持)放置到该 dll 中。

它会正常工作。

祝一切顺利。

问候,普拉萨特

于 2009-10-08T06:55:28.563 回答