C#与C++ 函数互相调用时,socket 参数如果传递

大新软件技术部 2016-01-04 11:23:24
大家好,
我有一个C++ dll 的函数申明:
1.
SOCKET _stdcall ConnectScale(char *ScaleIP, int iPort)

/*
函数:
ConnectScale:连接电子秤
参数:
char *ScaleIP : 电子秤IP地址 ipv4格式(例:192.168.0.1)
int iPort :电子秤的通讯端口 2000+IP地址的最后一段(例:192.168.0.1 的端口为 2001)
返回值:
类型 : int
-1 :连接电子秤失败
>0 :连接电子秤的socket句柄
*/

2. int _stdcall SendRPlu(SOCKET s,ReceiptPlu *ScaleData)

/*
函数:
SendRPlu:下传PLU信息到电子秤上(收据信息)
参数:
SOCKET s: 电子秤socket句柄
ReceiptPlu *ScaleData:需要删除的PLU记录
返回值:
类型 : int
0 :无错误
-1 :错误
*/

问题:
请问在上述2个函数中,我在C#里面如果申明?
我测试过,使用IntPtr 来接收 ConnectScale 可以获取到返回值,但是如果将这个值在 第2个函数 SendRPlu 中使用?
直接使用接收到IntPtr 会提示内存错误?
...全文
169 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Saleayas 2016-01-05
  • 打赏
  • 举报
回复
可能你的 C# 导入定义写错了。 SOCKET 在 C++ 里面的定义就是 UINT_PTR ,不是什么复杂的定义。

110,534

社区成员

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

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

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