一段程序中SetDlgItemTextA、GetDlgItemText、GetDlgItemTextA 都有,为什么?小白求解~~
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任意吧?为什么可以混合出现呢,这两个字符集不是不兼容吗?这号没分不好意思…………