您的位置:首页 > 编程语言 > C语言/C++

C# 调用c++ 实例

2011-01-18 16:36 477 查看
今天写了个RFID的封装类,主要实现c#调用c++中的函数。如果大家有需要,可以当个参考:

接口文档如下:





c++中的Struct 如下:


c#的类如下:

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 的方法积累
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: