如何从C#ASP.NET网页调用非托管C / C ++代码

时间:2009-04-06 01:21:36

标签: c# asp.net c++ dll unmanaged

我有一个使用C#的ASP.NET网站,我想从非托管C / C ++ DLL调用函数。我该怎么做?

3 个答案:

答案 0 :(得分:10)

  1. 创建一个非托管DLL:

    extern "C" __declspec(dllexport) __cdecl int sum(int a,int b); ---->
    
  2. 为DllImport上面的DLL

    创建一个名称空间/类
    using System.Runtime.InteropServices;
    namespace ImportDLL
    {
    public class importdll
    {
    public importdll()
    {
    }
    
    DllImport("mysum.dll",
              EntryPoint="sum",
              ExactSpelling=false,
              CallingConvention = CallingConvention.Cdecl)]
    public extern int myfun(int a, int b);
    }
    }
    
  3. 后面创建一个aspx代码
    using ImportDLL;
    namespace TEST
    {
     public int my_result;
     protected importdll imp = new importdll();
     my_result = imp.myfun(1,1);
    }
    

答案 1 :(得分:5)

查看P / Invoke。

Calling Win32 DLLs in C# with P/Invoke

如果是COM dll,那么您可以使用COM Interop

答案 2 :(得分:0)

只需添加pinvoke.net即可满足您的Win32需求。