将C++ 迁移到 C# 的尝试问题

szaibo 2009-03-18 09:29:39
我想把一下 C++ 实现的方法 转为C# 实现 请问可以做到吗?

主要想取出 硬件ID

LRESULT CHWDetectDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam)
{
if ( DBT_DEVICEARRIVAL == wParam || DBT_DEVICEREMOVECOMPLETE == wParam ) {
PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)lParam;
PDEV_BROADCAST_DEVICEINTERFACE pDevInf;
PDEV_BROADCAST_HANDLE pDevHnd;
PDEV_BROADCAST_OEM pDevOem;
PDEV_BROADCAST_PORT pDevPort;
PDEV_BROADCAST_VOLUME pDevVolume;
switch( pHdr->dbch_devicetype ) {
case DBT_DEVTYP_DEVICEINTERFACE:
pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr;
UpdateDevice(pDevInf, wParam);
break;

case DBT_DEVTYP_HANDLE:
pDevHnd = (PDEV_BROADCAST_HANDLE)pHdr;
break;

case DBT_DEVTYP_OEM:
pDevOem = (PDEV_BROADCAST_OEM)pHdr;
break;

case DBT_DEVTYP_PORT:
pDevPort = (PDEV_BROADCAST_PORT)pHdr;
break;

case DBT_DEVTYP_VOLUME:
pDevVolume = (PDEV_BROADCAST_VOLUME)pHdr;
break;
}
}
return 0;
}
...全文
123 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
szaibo 2009-03-18
  • 打赏
  • 举报
回复
(PDEV_BROADCAST_HDR)lParam; 请问是什么意思啊
typedef DEV_BROADCAST_HDR DBTFAR *PDEV_BROADCAST_HDR;

typedef struct _DEV_BROADCAST_HDR DEV_BROADCAST_HDR;

struct _DEV_BROADCAST_HDR { /* */
DWORD dbch_size;
DWORD dbch_devicetype;
DWORD dbch_reserved;
};
转后转出来是一下结果了
Adding USB\VID_04B4&PID_0001\5&FF39860&0&1
Removing HID\VID_093A&PID_2510\6&D6583A7&0&0000
shada 2009-03-18
  • 打赏
  • 举报
回复
可以,你必须将你的类拆成函数封装成dll,
然后在c#中引用。
szaibo 2009-03-18
  • 打赏
  • 举报
回复
typedef DEV_BROADCAST_HDR DBTFAR *PDEV_BROADCAST_HDR;

typedef struct _DEV_BROADCAST_HDR DEV_BROADCAST_HDR;

struct _DEV_BROADCAST_HDR { /* */
DWORD dbch_size;
DWORD dbch_devicetype;
DWORD dbch_reserved;
};

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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