声明:
- 本博客为原创博客,主要讲述使用C#语言调用服务端SDK方式完成VMS客户端完整功能实现,转载请声明出处。
- 如有技术问题或需交流可直接联系本人邮箱:chuiwenwei@163.com
简述:
- 在C/S架构设计下,客户端与服务端进行通信有多种方式可选,常用的就是SDK,最大的有点便是便于厂家间平台对接。本篇将从多个方面详尽描述如何使用C#调用C++ SDK。
目录:
- 调用Dll
- 如何调用C++ Dll接口
- C++数据类型与C#数据类型对照表
- 结构体转换
- 多级嵌套结构体转换
- 回调函数转换
1.调用Dll
- 首先确定C++提供的Dll文件,一般厂家或是自己部门服务端部分都会提供详尽的Dll、h、lib文件及接口使用文档。对于C#开发只需使用Dll文件即可。此处我将假设开发者是将Dll文件放置于与可执行文件在同一目录下,比如你的可执行文件在C:\,那么将Dll文件也放置于这个目录下,便于开发调试。
2.如何调用C++ Dll接口
Dll接口定义格式简述:
C++ : extern + 返回类型 + _stdcall + 函数名称(参数定义);
C# : [Dllmport("接口所在Dll",SetLastError = true)]
public static extern +返回类型 + 函数名称(参数定义);
确定Dll中提供的接口部分,举例我使用的服务端提供的Dll名称为:CMS_ClientComm.dll,那么我调用此Dll中一个接口:CMS_Init()
C++ :extern int __stdcall CMS_Init();
C#: [DllImport("CMS_ClientComm.dll", SetLastError = true)]
public static extern int CMS_Init();
3.C++数据类型与C#数据类型对照表
| C++ | c# |
| int | int |
| unsigned int | uint |
| bool | byte |
| float | float |
| OUT float& | ref float |
| OUT int& |

本文详细介绍了如何在C#环境下,利用C++ SDK实现VMS客户端的功能。从调用DLL、理解C++与C#的数据类型对应、结构体转换,特别是多级嵌套结构体和回调函数的处理,提供了全面的指导。
最低0.47元/天 解锁文章
2243

被折叠的 条评论
为什么被折叠?



