• 欢迎访问 Tanix 的个人网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 百度口碑求点赞 http://koubei.baidu.com/s/tanix.win
  • 如果您喜欢本站,那么赶紧使用 Ctrl+D 收藏吧

学习笔记:用C#封装C++编写的DLL,调用非托管函数API(一)

C#桌面开发 Tanix 5年前 (2017-02-28) 1488次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

接到好兄弟提出的一个功能需求,需要用C#调用一个C++DLL中的函数并实现回调。经过查阅资料并实际验证,实现了这个功能,特记录备查。

01 新建类并引入命名空间

纯粹是执行API的话,通常的做法是建立一个静态的类,用C#把非托管DLL封装起来。 设置一个静态类

public static class Win32
{
    // code
}

引入命名空间

using System.Runtime.InteropServices;

02 引入DLL中的函数

做到这一步,就能在类里声明引入DLL中的函数了,用法如下:

[DllImport(api.dll)] //指明DLL文件名,将该文件放在与程序在同一文件夹下即可正常调用
public static extern int Connect(string ip, ushort port, string username, string password);
//对应原函数定义:int Connect(const char* ip, uint16_t port, const char* username, const char* password);

未完待续

这个内容有很多要记的,先记录一点,有空再补。


Tanix 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权
转载请注明原文链接:学习笔记:用C#封装C++编写的DLL,调用非托管函数API(一)
喜欢 (2)
[]
分享 (0)
关于作者:
Tanix是一个纯粹的人,一个有益于社会的人,爱宅,爱折腾计算机。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址