看流星社区

 找回密码
 注册账号
查看: 2642|回复: 1

VC代码 物品要用什么数据类型来存放 关于listbox的使用

[复制链接]

该用户从未签到

发表于 2011-3-13 09:32:35 | 显示全部楼层 |阅读模式
因为是自学VC 所以基础不太好.也不知道程序错哪了..懂VC 的可以看一下..  

下面是读取物品名称的代码.地址我想不会有错~  


ULONG dix,base;
char name[128];//用来存放 物品名字   
//其它变量略  


ReadProcessMemory(gameProcess,(LPCVOID)0x8C9E54,&diz,4,0);
ReadProcessMemory(gameProcess,(LPCVOID)(diz+0x8),&diz,4,0);  
ReadProcessMemory(gameProcess,(LPCVOID)(diz+0x24),&diz,4,0);  


if(diz!=0) //         如果地上的东西不为零 就进行FOR循环  
{

for (int i=0;i<768;i++){             //循环用来判断那个值内存在物品  
  ReadProcessMemory(gameProcess,(LPCVOID)(diz+0x18),&base,4,0);
  ReadProcessMemory(gameProcess,(LPCVOID)(base+i*4),&base,4,0);//从列表中选出地面上物品的地址  

  if (base>0){ //如果有物品 得到名字  

ReadProcessMemory(gameProcess,(LPCVOID)(base+4),&base,4,0);
ReadProcessMemory(gameProcess,(LPCVOID)(base+0x164),&base,4,0);

ReadProcessMemory(gameProcess,(LPCVOID)base,&name,128,0);//         得到物品名称  

//m_list 是前面定义的一个 listbox   
//用MFC ClassWzxard 定义成 CListBox m_list  

m_list.AddString(name);
UpdateData(FALSE);

有以下问题  
Q1: 不能读出物品名称~显示的是乱码~  
Q2: 用char 来存放物品名字可以吗?  
Q3: listbox 是这么用的吗?论坛上大多用的是VB写的..VB就直接用 List1.AddItem WpName   
  在VC就不一样了...additem不是 他的 方法

该用户从未签到

发表于 2011-3-13 09:32:58 | 显示全部楼层
Q1与Q2:  
我是先用WCHAR从内存中读出地下的物品名  
即:WCHAR wupin1[50];//物品名  
然后转换成char  
即:char wupin2[50];//物品名  
别忘了清,不然会乱码  
ZeroMemory(wupin1,sizeof(wupin1));//清  
ZeroMemory(wupin2,sizeof(wupin2));//清  
WCHAR转char:  
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,wupin1,-1,wupin2,sizeof(wupin2),NULL,NULL);

Q3:
VC中往listbox添加数据这样用就行了  
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(name);
删除数据是:  
((CListBox*)GetDlgItem(IDC_LIST2))->DeleteString(0);//0代表第一个数据
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 12:31

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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