VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 667|回复: 1

ListCtrl控件GetItemData() X64平台结果下不正确

[复制链接]
13_avatar_middle
最佳答案
0 
donate_vip 发表于 2021-4-5 22:04:37 | 显示全部楼层 |阅读模式
ListCtrl控件使用SetItemData())指定数据后,GetItemData()在X86下能正确取到数据,在X64平台下则无法取数据,跟踪调试发现X64平台下GetItemData()取到的地址低位正确,高位地址不正确,如何解决该问题?原因何在?
        CString str;
        int row = m_list.GetItemCount();
        str.Format(_T("%d"), row + 1);
        m_list.InsertItem(row, str);
        Node_DATA* pd;
        pd = new Node_DATA;
        memset(pd, 0, sizeof(Node_DATA));
        pd->DirInput = 100;
        m_list.SetItemData(row, (DWORD)pd);
        Node_DATA* pd1;
        pd1 = (Node_DATA*)m_list.GetItemData(row);
X64平台下
pd的地址:0x000002b9b8707a80;pd1的地址:0x00000000b8707a80  
X86平台下
pd的地址: 0x019ee338     pd1的地址:0x019ee338

评分

参与人数 1热心值 +3 收起 理由
75_avatar_small wl1383838438 + 3 很给力!

查看全部评分





上一篇:请教,如何在使用了梯子之后,搭配上fiddler抓包
下一篇:myints + sizeof(myints) / sizeof(int)
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-4-5 22:34:23 | 显示全部楼层
SetItemData使用DWORD_PTR不使用DWORD类型可以解决问题,即m_list.SetItemData(row, (DWORD_PTR)pd);
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 17:51

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表