带**的dll函数如何DllImport到C#?还有,如何实现struct中包含struct的链表?

cnwolfs 2014-03-21 12:05:31
带**的dll函数如何DllImport到C#?还有,如何实现struct中包含struct的链表?

请注意下方代码的3个地方:
1、long DLLAPI apiGetStationList(long lLoginID, TDeviceList **pptStationList);
2、TDeviceNodeInfo *ptNodeInfo; //这里比较理想的应该如何申明?
3、struct T_Device_Node_Info *ptNextNode; //这里好像是链表,如何申明



long DLLAPI apiGetStationList(long lLoginID, TDeviceList **pptStationList);



typedef struct T_Device_List
{
DWORD dwNodeCount;
TDeviceNodeInfo *ptNodeInfo; //这里比较理想的应该如何申明?
}TDeviceList;

typedef struct T_Device_Node_Info
{
char achType[MAX_NODEUNIT_LEN + 1];//Camera or Station
char achName[MAX_NODEUNIT_LEN + 1];//Camera(C_XXX) or Station(S_XXX)
char achRefName[MAX_REFNAME_LEN + 1];
char achIP[MAX_IPHOST_LEN + 1];
DWORD dwPort;
char achUser[MAX_USERNAME_LEN + 1];
char achPwd[MAX_HEXPWD_LEN + 1];
struct T_Device_Node_Info *ptNextNode; //这里好像是链表,如何申明
} TDeviceNodeInfo;



...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnwolfs 2014-03-24
  • 打赏
  • 举报
回复
我用VC写成控件了,然后引出一些简单的参数
gomoku 2014-03-21
  • 打赏
  • 举报
回复
[StructLayout(LayoutKind.Sequential)] class TDeviceList { public int dwNodeCount; public IntPtr ptNodeInfo; } [DllImport(...)] extern static int apiGetStationList(int lLoginID, ref TDeviceList pptStationList);
bigbaldy 2014-03-21
  • 打赏
  • 举报
回复
C#有指针的,既然都是结构体,那么直接用指针即可
threenewbee 2014-03-21
  • 打赏
  • 举报
回复
用unsafe用指针最简单。
cnwolfs 2014-03-21
  • 打赏
  • 举报
回复
是指针,就是如何在C#中编写。
风一样的大叔 2014-03-21
  • 打赏
  • 举报
回复
带*的貌似是指针吧
cnwolfs 2014-03-21
  • 打赏
  • 举报
回复
引用 3 楼 qiujialongjjj 的回复:
楼主贴出的代码是C++的,是dll里面的?
long DLLAPI apiGetStationList(long lLoginID, TDeviceList **pptStationList); 这个是dll提供的一个函数。 TDeviceList、TDeviceNodeInfo 是dll会用到的两个结构体。 我是要写一个DllImport,把这个函数引出来。 就这个函数比较难,也比较具有代表性意义。 还有这个函数,也是要引出来的。 long DLLAPI apiGetCameraList(long lLoginID, TDeviceNodeInfo *ptStationNode, TDeviceList **pptCameraList); 这里头有一个*的参数也有两个*的参数。 没办法提供测试dll,因为这个dll要基于视频服务器上运行。
风一样的大叔 2014-03-21
  • 打赏
  • 举报
回复
楼主贴出的代码是C++的,是dll里面的?
likofans 2014-03-21
  • 打赏
  • 举报
回复
自己构造一个链表的TDeviceNodeInfo

110,534

社区成员

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

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

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