首页
社区
课程
招聘
[求助]C#中ListView控件和C++dll交互时的问题
发表于: 2018-6-8 16:29 2969

[求助]C#中ListView控件和C++dll交互时的问题

2018-6-8 16:29
2969
原帖发在CSDN的C#论坛,但没有人给出有用的回复,所以再这里请教下大家

大家好,我界面部分是使用的C#的ListView,调用C++的dll中的方法,用Win32 API的SendMessage向
ListView中插入行,并且插入是成功的,但是C#中获取不到插入的item,界面其实已经显示出来
数据了,但C# ListView中Item.Count的值为0,不知道是否有谁遇到过类似问题或者说知道怎么解决,
还望不吝赐教,谢谢!

下面是dll中的C测试代码
  // 插入列
LVCOLUMN col = { 0 };
col.mask = LVCF_TEXT | LVCF_WIDTH;
col.pszText = L"Test";
col.cx = 120;
::SendMessageW((HWND)hListView, LVM_INSERTCOLUMNW, NULL, (LPARAM)&col);

// 只添加一行数据
LVITEMW item = { 0 }; 
item.mask = LVIF_TEXT;
item.iItem = 0;
::SendMessageW((HWND)hListView, LVM_INSERTITEMW, NULL, (LPARAM)&item); // 插入一行
item.pszText = L"Test Value";
item.iSubItem = 0;
::SendMessageW((HWND)hListView, LVM_SETITEMTEXTW, NULL, (LPARAM)&item);

图片如下:


C# 弹框显示列和行都是0,也就是Column和Item都为空,但界面已经存在数据,
不知道怎么把这个数据和Item集合关联起来
MessageBox.Show(lv.Columns.Count.ToString());
MessageBox.Show(lv.Items.Count.ToString());


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 486
活跃值: (583)
能力值: ( LV12,RANK:238 )
在线值:
发帖
回帖
粉丝
2
没这么做过.有可能是C#对ListView做了一次封装。调用的函数获取的数据是从封装的对象缓存读取,未从系统的资源中数据同步。
1.  你可以C++写,C++读。或者C#调用API读。
2.  查查看c#有没有数据同步函数。如C++的  DDX 
2018-6-8 17:22
0
雪    币: 357
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
期待看雪的高手出现
2018-6-10 19:33
0
雪    币: 12628
活跃值: (3127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
c#肯定会把底层封装好,只暴露接口给你。不然动不动就崩溃怎么称得上managed  code
2018-6-21 05:57
0
游客
登录 | 注册 方可回帖
返回
//