您的位置:首页 > 其它

【Windows mobile】WinInet API 的异步读取网页数据(一)

2010-01-19 22:43 375 查看
  引言:这几天在做一个windows mobile 的Internet应用,刚开始使用InternetOpen没有遇到什么问题,但在测试时有时发现程序卡在那里不动,调试发现在InternetOpenUrl卡住了。分析后察觉网络不好,然后Google之,发现最好异步调用WinInet API。搜到第一篇文章后开通了此博客转载了它。其他部分测试好后开始着手把同步换成异步。今天早上发现一篇文章http://www.wangchao.net.cn/bbsdetail_26749.html是silver0001写的,然后给这位吴先生发了封邮件,

他很热心,没多久就回了并把源码给我。在此感谢这位吴先生。

好了,开始正题。拿到源码,粗略看了一下就开始试着用,其实已经封装很好了。调试发现未能获取数据,报InternetOpenUrl 12029 12031等错误。再测得到InternetReadFileEx 120的错误,就是说该平台下不支持(可恶的是MSDN上说支持)。继续搜索得到一个网友点金之言:使用InternetReadFileExA!OK了!

先列出头文件:

代码

wstring UTF8ToUnicode( const string& str )
{
int len = str.length();
int unicodeLen = ::MultiByteToWideChar( CP_UTF8, 0, str.c_str(), -1, NULL, 0 );

wchar_t * pUnicode = new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));

MultiByteToWideChar( CP_UTF8, 0, str.c_str(), -1, pUnicode, unicodeLen );

wstring rt(pUnicode);
delete []pUnicode;
pUnicode = NULL;

return rt;
}

第一次写博客,讲的不好,见笑!有任何问题请留言,我的测试环境:Windows XP +VS2005 +Windows mobile 6.0模拟器。

源码下载地址:

/Files/want/DemoInternet.rar

下一篇:

【Windows mobile】WinInet API 的异步读取网页数据(二)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: