c#使用DllImport调用c++dll的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#使用DllImport调用c++dll的函数相关的知识,希望对你有一定的参考价值。

举几个简单的例子,希望自己写网上都搜了 还是不太懂

调用格式如下:

[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll为C++DLL名,method为函数名, 这里的int a为C++中方法的参数转换。
例:C++DLL名:Interface.dll,函数为voidCopMemFree(void *vp);
调用格式为:

[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);

其实C#调用C++dll主要就是C++与C#的参数转换比较困难。
望楼主采纳。
参考技术A /// <summary>
/// 获取照片
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
[DllImport("termb.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto
, EntryPoint = "GetPhoto", SetLastError = false)]
public static extern int GetPhoto(string path);
参考技术B 忘记了…

以上是关于c#使用DllImport调用c++dll的函数的主要内容,如果未能解决你的问题,请参考以下文章

C#调用C/C++的dll,一个库中包括多个函数,每调用一个函数都要用DllImport加载吗?求大神

有啥方法可以调试从 C# DllImport 调用的 c++ dll?

dllimport如何在非托管dll中获取哪个应用程序调用了函数

通过 DllImport 调用非托管函数时堆损坏

C#的Dllimport能不能调用指定路径的dll文件?

通过 DllImport 在 C# 中调用 C 方法 - 尝试读取或写入受保护的内存