一段程序中SetDlgItemTextA、GetDlgItemText、GetDlgItemTextA 都有,为什么?小白求解~~

xinuuu 2012-04-21 11:50:17
SPI防火墙程序段:

BOOL AddIp()
{
CHAR Buff[32] = {0};
IPLISTITEM ItemBuff;
GetDlgItemTextA(hIpDlg,IDC_EDIT_ADDIP,Buff,32);/////////GetDlgItemTextA
ItemBuff.Ip.S_un.S_addr = inet_addr(Buff);
..........


// 在UI中显示IP列表
BOOL ShowIpList()
{
LVITEM LvItem;
WCHAR Buff[32] = {0};

int i = 0;

IPLISTITEM ItemBuff;
SendDlgItemMessage(hIpDlg,IDC_LIST_IP,LVM_DELETEALLITEMS,NULL,NULL);
while (GetIpListItem(i,&ItemBuff)==TRUE)
{
LvItem.iItem = i;
LvItem.mask= LVIF_TEXT;
LvItem.iSubItem = 0;
CHAR *IpBuff = inet_ntoa(ItemBuff.Ip);
SetDlgItemTextA(hIpDlg,IDC_EDIT_ADDIP,IpBuff);//////////SetDlgItemTextA
GetDlgItemText(hIpDlg,IDC_EDIT_ADDIP,Buff,32);//////////GetDlgItemText
LvItem.pszText = Buff;
SendDlgItemMessage(hIpDlg,IDC_LIST_IP,LVM_INSERTITEM,(WPARAM)0,(LPARAM)&LvItem);

memset(Buff,0,sizeof(Buff));
.........


加上或去掉A还会报错,A应该是ANSI,没有是ANSI或unicode任意吧?为什么可以混合出现呢,这两个字符集不是不兼容吗?这号没分不好意思…………
...全文
559 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂-的-蜗牛 2012-04-23
  • 打赏
  • 举报
回复
两种编码方式当然可以同时使用
只不过是函数的参数类型改变了
例如:
UNICODE下MessageBox对应的第二个是LPWSTR
!UNICODE下对应的第二个参数是LPSTR
在新建工程时会有选择是否UNICODE
如果是,那么我的MessageBox函数会直接替换为宽字节的MessageBoxW函数
如果这时你不想用宽字节,也可以显式调用MessageBoxA函数
只不过对应的参数不是宽字节的LPWSTR了
xinuuu 2012-04-23
  • 打赏
  • 举报
回复
程序整个解决方案内有两部分,一部分是防火墙安装、窗口回调函数,另一部分是DLL相关的。DLL部分头文件里有声明用unicode
#define UNICODE
#define _UNICODE
第一部分里没声明,1L那段代码就是这部分的,就是说可能用到两种编码方式吗?小白一只求指点……
疯狂-的-蜗牛 2012-04-22
  • 打赏
  • 举报
回复
看看windows怎么定义的MessageBox你就知道了:
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE
在!UNICODE下MessageBox MessageBoxA代表的是同一个函数
Eleven 2012-04-22
  • 打赏
  • 举报
回复
要看你当前工程是怎么编码的,Unicode还是多字节编码。
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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