【发布时间】:2020-12-19 11:11:55
【问题描述】:
我收到错误“System.DllNotFoundException:
无法加载 DLL 'swedll32.dll':对内存位置的访问无效。 (来自 HRESULT 的异常:0x800703E6)'
Form1 加载时。该 dll 是用 C 编写的 32 位本机或非托管 dll。我使用的是 64 位 Windows 10 和 Visual Studio 2019。我尝试了很多方法,但没有结果。
我尝试过这种方式: 禁用 DEP 和 UAC, 以管理员身份运行 VS 2019, 编译 - 目标 CPU - 任何 CPU 到 X86
请帮忙。谢谢
Public Class Form1
Public Declare Sub swe_set_ephe_path Lib "swedll32.dll" Alias "_swe_set_ephe_path@4" (ByVal path As String)
End Class
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
swe_set_ephe_path(System.IO.Path.GetDirectoryName(Application.ExecutablePath) & "\SwEph")
End Sub
【问题讨论】:
-
0x800703E6 非常具体,用于表示 winapi 错误 998。它不是“找不到文件”错误。 DLL 的 DllMain() 函数因 AccessViolationException 而失败,这是非常严重的事故。对于像这样的封闭源代码库,您需要木星和土星在水瓶座进行诊断,请向图书馆所有者寻求支持。
标签: .net vb.net visual-studio-2019