SWIG c# 引用 c++dll

来源:互联网 发布:nba2k14季后赛数据 编辑:程序博客网 时间:2024/05/17 10:39


swig 生成 cs,我就省略不说了,网上很多!

我遇到一个问题: cs文件有了,c++的dll也生成了,dll也放到BIn下面了,但是初始化对象的时候还是会报错!


找了好长时间才发现,dll拷贝到Bin下面,不代表网站加载了dll

所以要加载DLL,


1 ,  添加引用using System.Runtime.InteropServices;


2.添加 代码

  

    [DllImport("kernel32.dll", EntryPoint = "LoadLibrary")]    public static extern IntPtr LoadLibrary(string lpLibFileName);


3.   构造函数添加

  

string path = HttpContext.Current.Server.MapPath("~/Bin");        LoadDll(path);


4,添加函数

public bool LoadDll(string currentDirectory)    {        string _path_dll = Path.Combine(currentDirectory, @"FaceCompare.dll");        IntPtr _dll_addr = LoadLibrary(_path_dll);        if (_dll_add == IntPtr.Zero)        {            return false;        }        return true;    }

dll 所依赖的其他dll也要load


这样就可以了


0 0