C# 调用c++ 实例
来源:互联网 发布:php pdf完整版 编辑:程序博客网 时间:2024/05/01 03:40
今天写了个RFID的封装类,主要实现c#调用c++中的函数。如果大家有需要,可以当个参考:
接口文档如下:
c++中的Struct 如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
typedef
struct
{
int
deviceID;
//阅读器逻辑ID
char
address[20];
//IP地址或串口;如"COM1","10.86.10.56"
int
status;
//0-未链接;1-已链接,未初始化;2-已链接,已初始化
int
style;
//0-网络客户端;1-网络服务端;2-串口
} ReaderItem;
typedef
struct
{
int
length;
unsigned
char
tagData[2048];
//标签长度1byte(lenth字)+标签epc码(lenth*2)byte+标签长度1byte+标签epc码
} InventoryResult;
c#的类如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public
class
RFIDBaseManage
{
[DllImport(
"xxx.dll"
)]
public
static
extern
int
Connect(
string
dev,
ref
int
devid);
[DllImport(
"xxx.dll"
)]
public
static
extern
int
Disconnect(
int
devid);
[DllImport(
"xxx.dll"
, EntryPoint =
"GetReaders"
)]
public
static
extern
int
GetReaders(
ref
ReaderItem item,
int
maxCount,
ref
int
count);
}
public
class
RFIDInfoManage
{
[DllImport(
"xxx.dll"
, EntryPoint =
"EPC1G2_Inventory"
)]
public
static
extern
int
EPC1G2_Inventory(
int
DeviceID,
short
antennalID,
ref
InventoryResult result);
}
[StructLayout(LayoutKind.Sequential)]
public
struct
ReaderItem
{
public
int
deviceID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public
string
address;
//IP地址或串口;如"COM1","10.86.10.56"
public
int
status;
public
int
style;
}
[StructLayout(LayoutKind.Sequential)]
public
struct
InventoryResult
{
public
int
length;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2048)]
public
byte
[] tagData; }
另外,也可以参考这几篇文章:
C#调用c++Dll结构体数组指针的问题
[转]C#时常需要调用C++DLL
http://hi.baidu.com/yun0216/blog/item/37a463106b575ffec3ce7913.html
http://blog.csdn.net/xqf222/archive/2010/09/11/5877795.aspx
对于Byte[]的处理 可以参考
Byte数组转换成string 的方法积累
- C#反射实例调用
- C# 调用c++ 实例
- C#委托调用实例
- JavaScript 调用C#变量实例
- javascript 调用c#变量实例
- javascript 调用c#变量实例
- javascript 调用c#变量实例
- JavaScript 调用C#变量实例
- C#调用Quartz实例代码
- c# winform 调用WebService实例
- C#调用Quartz实例代码
- C#调用迅雷下载实例
- C#调用C/C++
- C#调用C++DLL
- c++/cli调用c#
- C#调用C++dll
- C#调用C++dll
- C#调用C++DLL
- OCP-1Z0-051-V9.02-140题
- Spring MVC Hello World Example
- Open Ural FU Championship 2013 (2013区域赛练习)
- lightoj 1035 Intelligent Factorial Factorization 因式分解
- POJO浅析
- C# 调用c++ 实例
- Java反射机制
- 香八拉 北京 香山 八大处 防火通道
- 先锋论文检测软件,效果很好.2013年10月20日:13
- 微软正式提供Visual Studio 2013正式版下载(附直接链接汇总)
- 项目启动的时候报错:java.lang.IllegalStateException,需要配置webAppRootKey
- 排序之二(快速排序及随机化)
- 游戏禁令解除 中国将成为最大的游戏市场
- leetcode:Remove Duplicates from Sorted List II (留下链表中只出现一次的元素)【面试算法题】