C#调用C++动态库
来源:互联网 发布:锐战网络 编辑:程序博客网 时间:2024/06/06 15:48
C++动态库h文件:
/**
* @brief 打开设备。
* @par 说明:
* 建立设备的通讯并且分配相应的资源,大部分功能接口都需要在此过程后才能进行,在不需要使用设备后,必须使用 ::DCSDT_Close 去关闭设备的通讯和释放资源。
* @param[in] port 端口号。
* @n 1~64 - 表示串口模式(编号物理对应),编号1表示第一个串口合法设备,编号2表示第二个串口合法设备,以此类推。
* @n 1001~1064 - 表示USB模式(编号逻辑对应),编号1001表示第一个USB合法设备,编号1002表示第二个USB合法设备,以此类推。
* @param[in] baud 波特率,只针对串口模式有效。
* @return <0表示失败,否则为设备标识符。
*/
int USER_API DCSDT_Open(int port, int baud);
/**
* @brief 关闭设备。
* @par 说明:
* 关闭设备的通讯和释放资源。
* @param[in] handle 设备标识符。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_Close(int handle);
/**
* @brief 获取SAM_V编号。
* @par 说明:
* 获取SAM_V编号。
* @param[in] handle 设备标识符。
* @param[out] number SAM_V编号(十六进制格式字符串,分配不少于33字节)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_GetSamSerialNumber(int handle, char *number);
/**
* @brief 查询ID卡。
* @par 说明:
* 查询ID卡。
* @param[in] handle 设备标识符。
* @param[out] management_number 卡管理号(十六进制格式字符串,分配不少于9字节)。
* @param[out] serial_number 卡序列号(十六进制格式字符串,分配不少于17字节)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_SearchIdCard(int handle, char *management_number, char *serial_number);
/**
* @brief 获取卡类型。
* @par 说明:
* 获取卡类型。
* @param[in] handle 设备标识符。
* @return <0表示失败,==0表示中国人居民身份证,==1外国人永久居留证。
*/
int USER_API DCSDT_GetIdCardType(int handle);
/**
* @brief 读ID卡。
* @par 说明:
* 读ID卡。
* @param[in] handle 设备标识符。
* @param[in] flags 标记(参考1,可以多选)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_IdCardRead(int handle, int flags);
/**
* @brief 获取ID卡相关内容(中国人居民身份证)。
* @par 说明:
* 获取ID卡相关内容(中国人居民身份证)。
* @param[in] handle 设备标识符。
* @param[in] flag 标记(参考2,只能单选)。
* @param[out] content 根据flag获取内容(内容格式和分配与flag相关)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_IdCardContent(int handle, int flag, char *content);
/**
* @brief 获取ID卡相关内容(外国人永久居留证)。
* @par 说明:
* 获取ID卡相关内容(外国人永久居留证)。
* @param[in] handle 设备标识符。
* @param[in] flag 标记(参考3,只能单选)。
* @param[out] content 根据flag获取内容(内容格式和分配与flag相关)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_IdCardContentForForeigner(int handle, int flag, char *content);
/**
* @brief 转换photo信息到bmp文件。
* @par 说明:
* 转换photo信息到bmp文件。
* @param[in] photo 相片信息(十六进制格式字符串)。
* @param[in] file_name bmp文件路径。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_PhotoToBmpFile(const char *photo, const char *file_name);
/**
* @brief 转换photo信息到jpg文件。
* @par 说明:
* 转换photo信息到jpg文件。
* @param[in] photo 相片信息(十六进制格式字符串)。
* @param[in] file_name jpg文件路径。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_PhotoToJpgFile(const char *photo, const char *file_name);
/**
* @brief 转换photo信息到bmp格式的base64。
* @par 说明:
* 转换photo信息到bmp格式的base64。
* @param[in] photo 相片信息(十六进制格式字符串)。
* @param[out] base64_str bmp格式的base64(建议分配1m字节)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_PhotoToBmpBase64(const char *photo, char *base64_str);
/**
* @brief 转换photo信息到jpg格式的base64。
* @par 说明:
* 转换photo信息到jpg格式的base64。
* @param[in] photo 相片信息(十六进制格式字符串)。
* @param[out] base64_str jpg格式的base64(建议分配64k字节)。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_PhotoToJpgBase64(const char *photo, char *base64_str);
/**
* @brief 解析其它信息。
* @par 说明:
* 解析其它信息。
* @param[in] flag 标志,0表示性别,1表示民族,2表示国籍。
* @param[in] in_info 传入信息。
* @param[out] out_info 返回的信息。
* @return <0表示失败,==0表示成功。
*/
int USER_API DCSDT_ParseOtherInfo(int flag, const unsigned char *in_info, unsigned char *out_info);
C#调用代码:
/**
* @brief 打开设备。
* @par 说明:
* 建立设备的通讯并且分配相应的资源,大部分功能接口都需要在此过程后才能进行,在不需要使用设备后,必须使用 ::DCSDT_Close 去关闭设备的通讯和释放资源。
* @param[in] port 端口号。
* @n 1~64 - 表示串口模式(编号物理对应),编号1表示第一个串口合法设备,编号2表示第二个串口合法设备,以此类推。
* @n 1001~1064 - 表示USB模式(编号逻辑对应),编号1001表示第一个USB合法设备,编号1002表示第二个USB合法设备,以此类推。
* @param[in] baud 波特率,只针对串口模式有效。
* @return <0表示失败,否则为设备标识符。
*/
[DllImport("dcsdtapi.dll", EntryPoint="DCSDT_Open",CharSet=CharSet.Ansi)]
private static extern int DCSDT_Open(int port, int baud);
/**
* @brief 关闭设备。
* @par 说明:
* 关闭设备的通讯和释放资源。
* @param[in] handle 设备标识符。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_Close(int handle);
/**
* @brief 获取SAM_V编号。
* @par 说明:
* 获取SAM_V编号。
* @param[in] handle 设备标识符。
* @param[out] number SAM_V编号(十六进制格式字符串,分配不少于33字节)。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_GetSamSerialNumber(int handle, [Out] byte[] number);
/**
* @brief 查询ID卡。
* @par 说明:
* 查询ID卡。
* @param[in] handle 设备标识符。
* @param[out] management_number 卡管理号(十六进制格式字符串,分配不少于9字节)。
* @param[out] serial_number 卡序列号(十六进制格式字符串,分配不少于17字节)。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_SearchIdCard(int handle, [Out] byte[] management_number, [Out] byte[] serial_number);
/**
* @brief 获取卡类型。
* @par 说明:
* 获取卡类型。
* @param[in] handle 设备标识符。
* @return <0表示失败,==0表示中国人居民身份证,==1外国人永久居留证。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_GetIdCardType(int handle);
/**
* @brief 读ID卡。
* @par 说明:
* 读ID卡。
* @param[in] handle 设备标识符。
* @param[in] flags 标记(参考1,可以多选)。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_IdCardRead(int handle, int flags);
/**
* @brief 获取ID卡相关内容(中国人居民身份证)。
* @par 说明:
* 获取ID卡相关内容(中国人居民身份证)。
* @param[in] handle 设备标识符。
* @param[in] flag 标记(参考2,只能单选)。
* @param[out] content 根据flag获取内容(内容格式和分配与flag相关)。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_IdCardContent(int handle, int flag, [Out] byte[] content);
/**
* @brief 转换photo信息到jpg格式的base64。
* @par 说明:
* 转换photo信息到jpg格式的base64。
* @param[in] photo 相片信息(十六进制格式字符串)。
* @param[out] base64_str jpg格式的base64(建议分配64k字节)。
* @return <0表示失败,==0表示成功。
*/
[DllImport("dcsdtapi.dll")]
private static extern int DCSDT_PhotoToJpgBase64(byte[] photo, [MarshalAs(UnmanagedType.LPStr)] StringBuilder sdata);
- C#调用C/C++动态链接库
- 【c#】C#调用matlab动态链接库
- C#动态调用C++DLL
- 创建和使用动态链接库 (C++)C#调用
- 在C#中调用C语言标准动态库方法
- C#调用C/C++ 动态链接库DLL(一)
- C#调用C/C++ 动态链接库DLL(二)
- C#调用C/C++ 动态链接库DLL(三)
- C# 调用C/C++动态库随记1
- C#调用C/C++动态链接库(.dll)详解
- 【C# 调用C/C++动态库 需要注意的地方】
- c# 调用c/c++ 动态库的办法
- c|c++ 封装 c# 调用的动态库
- C#调用C/C++动态链接库(.dll)详解
- C#动态调用c++DLL的方法
- C#动态调用c++DLL的方法
- c/c++动态库(DLL)调用,c#等其他语言调用c/c++的DLL
- C#调用动态链接库
- ios 粘贴板
- 单例模式
- 单元测试说明
- HttpURLConnection
- oracle 中的 CONCAT,substring ,MINUS 用法
- C#调用C++动态库
- Catalogue/update in 2017.12.07
- 构建自定义的同步工具
- jedis在项目中的应用
- 2LIS_06_INV的初始化
- Kubernetes(k8s)如何使用kube-dns实现服务发现
- 详细讲解Redis主从结构配置以及复制原理(一)
- 注意SSL证书和中级证书的证书链匹配
- 【算法题】判断素数/质数