100分C#调用C++动态库

zhengjob 2015-12-17 03:40:58
加精
C++的库如下:
#define SOCKET_PACKHEAD_LENGTH 92
#define SOCKET_PACKCHECK_LENGTH 96

#define SOCKET_LENGTH_LENGTH 5
#define SOCKET_LENGTH_POS 0
#define SOCKET_CATEGORY_LENGTH 2
#define SOCKET_CATEGORY_POS 5
#define SOCKET_SUB_COMMAND_LENGTH 2
#define SOCKET_SUB_COMMAND_POS 7
#define SOCKET_OPCODE_LENGTH 4
#define SOCKET_OPCODE_POS 9
#define SOCKET_SEQNO_LENGTH 10
#define SOCKET_SEQNO_POS 13
#define SOCKET_SPID_LENGTH 4
#define SOCKET_SPID_POS 23
#define SOCKET_SERVERID_LENGTH 5
#define SOCKET_SERVERID_POS 27
#define SOCKET_OPERATEID_LENGTH 5
#define SOCKET_OPERATEID_POS 32
#define SOCKET_CALLINGNUMBER_LENGTH 20
#define SOCKET_CALLINGNUMBER_POS 37
#define SOCKET_CALLEDNUMBER_LENGTH 20
#define SOCKET_CALLEDNUMBER_POS 57
#define SOCKET_ERROR_LENGTH 5
#define SOCKET_ERROR_POS 77
#define SOCKET_CRY_TYPE_LENGTH 5
#define SOCKET_CRY_TYPE_POS 82
#define SOCKET_KEY_NO_LENGTH 5
#define SOCKET_KEY_NO_POS 87

struct PACKET_HEAD //包头数据结构
{
unsigned int PACKETLENGTH;
unsigned char CATEGORY[SOCKET_CATEGORY_LENGTH+1];
unsigned char SUBCOMMAND[SOCKET_SUB_COMMAND_LENGTH+1];
unsigned char OPCODE[SOCKET_OPCODE_LENGTH+1];
unsigned char SEQNO[SOCKET_SEQNO_LENGTH+1];
unsigned char SPID[SOCKET_SPID_LENGTH+1];
unsigned char SERVERID[SOCKET_SERVERID_LENGTH+1];
unsigned char OPERATEID[SOCKET_OPERATEID_LENGTH+1];
unsigned char CALLINGNUMBER[SOCKET_CALLINGNUMBER_LENGTH+1];
unsigned char CALLEDNUMBER[SOCKET_CALLEDNUMBER_LENGTH+1];
unsigned char RESULT[SOCKET_ERROR_LENGTH+1];
unsigned char CRYTYPE[SOCKET_CRY_TYPE_LENGTH+1];
unsigned char KEYNO[SOCKET_KEY_NO_LENGTH+1];
};

typedef struct PACKET_HEAD * Packet_Head;

unsigned int VSPPCommInit(unsigned int nPort,unsigned int key);
unsigned int VSPPReceiveAccept(unsigned char * IP,unsigned int &Port);
unsigned int VSPPCheckConnectStatus(unsigned char *IP,unsigned int Port);
unsigned int VSPPSendMessage(unsigned
char
*IP,unsigned int Port,
PACKET_HEAD pPackethead,char * sPackbody);
unsigned int VSPPReceiveMessage(unsigned char * IP,unsigned int &Port,
PACKET_HEAD &pPackethead,char * sPackbody);
unsigned int VSPPCloseConnect(unsigned char *IP,unsigned int Port);
void VSPPReleaseSource();


求把上面的代码转为C#调用

...全文
1527 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeZeng2015 2015-12-30
  • 打赏
  • 举报
回复
论坛里好多大神!先跟着你们学了,膜拜!
  • 打赏
  • 举报
回复
你说的那是C++.Net,还是基于.Net的,只不过大部分用的C++的语法
runerback 2015-12-25
  • 打赏
  • 举报
回复
引用 10 楼 fontain2 的回复:
C++打包成动态链接库,由C#导入就可以,标准做法,难不成你还想直接编译进C#?
我最近就在纠结到底是怎么编译进去的,我有一个.Net的dll但里面有C++的“成分”这里让发网盘链接么
  • 打赏
  • 举报
回复
const int SOCKET_SUB_COMMAND_LENGTH = xxx; public struct PACKET_HEAD { public uint PACKETLENGTH; [MarshalAs(UnmanagedType.ByValArray, SizeConst=SOCKET_SUB_COMMAND_LENGTH + 1)] public byte[] CATEGORY; 其他字段类似 }
Mr.Brain 2015-12-25
  • 打赏
  • 举报
回复
使用com接口
全哥爱你 2015-12-24
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶
oqqJack123456 2015-12-24
  • 打赏
  • 举报
回复
g68743512 2015-12-24
  • 打赏
  • 举报
回复
做一个clr的C++动态链接库做中转,C# 导入clr 动态链接库
g68743512 2015-12-24
  • 打赏
  • 举报
回复
做一个clr的C++动态链接库做中转,C# 导入clr 动态链接库
g68743512 2015-12-24
  • 打赏
  • 举报
回复
做一个clr的C++动态链接库做中转,C# 导入clr 动态链接库
shuiyuan622 2015-12-24
  • 打赏
  • 举报
回复
先把C++代码打包成dll 1 将dll 放置到c#工程的bin/debug目录下 2 在c#工程中加入函数声明,如下 c++ 函数: HANDLE __stdcall IC_InitComm(__int16 port); C#中的声明: [DllImport("dcic32.dll")] public static extern IntPtr IC_InitComm(Int16 port); 3 调用: IntPtr handle = IC_InitComm(100);
comcyd 2015-12-23
  • 打赏
  • 举报
回复
百度应该能找到一大片吧
qq_27217139 2015-12-22
  • 打赏
  • 举报
回复
学习学习,回去试试
dinghaohong81 2015-12-21
  • 打赏
  • 举报
回复
1、你在C++环境把C++代码打包成dll 2、然后再C#里调用:(先把dll放入bin文件夹中;然后.aspx.cs文件中调用) 、、、、、、、、、、、、、、、、、、、 例如:try.dll 可以在文件中声明为全局变量, try.Class aaa= new try.Class(); protected void Page_Load(object sender, EventArgs e) { ViewState["fldm"] = aaa.函数名(); }
Rule12 2015-12-20
  • 打赏
  • 举报
回复
雪狼隐迹X 2015-12-20
  • 打赏
  • 举报
回复
这个没看懂,抱歉哟
fontain2 2015-12-20
  • 打赏
  • 举报
回复
1.简单的包装问题,没必要推荐 2.C++打包成动态链接库,由C#导入就可以,标准做法,难不成你还想直接编译进C#?
十八道胡同 2015-12-20
  • 打赏
  • 举报
回复
用C#来调用C++的dll [DllImport...]
Poopaye 2015-12-20
  • 打赏
  • 举报
回复
引用 4 楼 NoMasp 的回复:
已推荐………………
这有什么好推荐的?
啊时代经典 2015-12-19
  • 打赏
  • 举报
回复
我看看在说活
加载更多回复(4)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧