已有8人关注
《Visual C++开发实例大全》第531例在Unicode下的乱码问题
发表在VC++答疑区 2017-04-18
是否精华
版块置顶:

一、购买了贵公司的图书《Visual C++开发实例大全》,发现第531例,有问题

该代码,没有启用Socket服务,应该在Ping.cpp的Ping(UINT nRetries, LPCSTR pstrHost, HWND hWnd)函数里添加如下代码:

//初始化套接字

WSADATA wsaData;

//WSAStartup(MAKEWORD(2,2), &wsaData);

if (WSAStartup(MAKEWORD(2,2),&wsaData) != 0)

{

ASSERT("WSAStartup is Failed");

return;

}


.......


        //关闭套接字

closesocket(rawSocket);

WSACleanup();


二、该代码只有MBCS环境下使用,在Unicode下用不了。

   我的问题是,如果改成Unicode,文件案例531/PingTest/PingTestDlg.cpp里的函数OnStatus()


LRESULT CPingTestDlg::OnStatus(WPARAM wParam, LPARAM lParam)

{

int nCnt = m_Grid.GetItemCount();

//m_Grid.InsertItem(nCnt,(char*)lParam,wParam); //此处lParam如何转换,在Unicode下才能编译通过

                                                        //并且,保证视图列表不要出现乱码

return 0;

}


分享到:
精彩评论 5
李木子
学分:2954 LV11
2017-04-18
沙发

你好:

     你说的是《Visual C++开发实例大全》的基础篇还是提高篇呢。

sanqima
学分:8 LV1
2017-04-18
板凳

是《Visual C++开发实例》的提高篇,第531例:“编程实现Ping操作”,源代码有缺陷,在Unicode环境下,运行不了。

李木子
学分:2954 LV11
2017-04-18
地板

sanqima 发表于2017-04-18 14:29

是《Visual C++开发实例》的提高篇,第531例:“编程实现Ping操作”,源代码有缺陷,在Unicode环境下,运行不了。

你好:

   代码是在visual c++6.0环境下编写,经检测,没有出现错误。

李木子
学分:2954 LV11
2017-04-18
4L

sanqima 发表于2017-04-18 14:29

是《Visual C++开发实例》的提高篇,第531例:“编程实现Ping操作”,源代码有缺陷,在Unicode环境下,运行不了。

如果你想自己改成能在Unicode环境下运行,可以参考链接

https://wenku.baidu.com/view/1a32ab395727a5e9856a6181.html

http://blog.csdn.net/liu4584945/article/details/6191370

希望能帮助你

sanqima
学分:8 LV1
2017-04-18
5L

李木子 发表于2017-04-18 14:45

你好:

   代码是在visual c++6.0环境下编写,经检测,没有出现错误。

能够运行,不代码有没有Bug。一个很明显的缺陷是,源代码的IP测试时,没有对Socket进行初始化,当迁移的VS2008时,源代码会成随机性编译的失败。考虑到XP已被微软遗弃,MBCS代码不能跨平台,希望贵公司多用VS2008+Unicode编写代码,这样才是发展之道。

首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照