无法从C#.NET加载Win32本机DLL文件

los*_*eep 0 c# dll winapi

我有一个C#winapp.我从C#应用程序调用一个原生.dll文件(由我自己创建),它工作正常.

但是当我将我的应用程序(.exe和.dll文件)复制到另一台机器时,我收到一条错误消息:

无法加载DLL"c:\ dllname.dll":找不到指定的模块.(来自HRESULT的异常:0x8007007E)

这是C#代码:

class IsoMessageHelper
{
    public const string ISO8583_DLL = "c:\\Hc8583.dll";
    [DllImport(ISO8583_DLL, CallingConvention = CallingConvention.Cdecl)]
    public static extern bool InitializationRq(...)
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Tim*_*oyd 5

部署具有本机依赖性的.Net应用程序时的一个常见问题是本机dll本身可能缺少目标计算机上的依赖项,例如C运行时的正确版本.

使用Dependency Walker之类的工具来分析您的本机dll,并确定它是否对您复制它的机器缺少依赖性.