我有一个简单的 C DLL,它从静态库中公开函数。DLL 编译没有错误,我可以在其上运行 DUMPBIN 以查看导出。但是,当我尝试DllImport
在 C# 中加载它时,它会说:
System.DllNotFoundException:无法加载 DLL 'ei.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)。
当然,它在正确的目录中。因此,我读到尝试 Dependency Walker 可能是个好主意,以防我需要包含其他内容。不幸的是,当我尝试在 DW 中打开我的 DLL 时,我得到了这个:
错误:至少一个文件不是 32 位或 64 位 Windows 模块。
这是我的cl
命令:
set ERL_INTERFACE_DIR=C:\Progra~1\erl5.7.2\lib\erl_interface-3.6.2\
call vcvars32.bat
cl /I%ERL_INTERFACE_DIR%include /LD ei.c ei.lib Ws2_32.lib /link /LIBPATH:%ERL_INTERFACE_DIR%lib
这可能是什么原因造成的?