用MFC实现的飞信给好友发送短信接口..docVIP

用MFC实现的飞信给好友发送短信接口..doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用MFC实现的飞信给好友发送短信接口.

用MFC实现的飞信给好友发送短信接口 这段时间,我在学习vc。以前一直是在用C#和Java的,最近发现MFC还是有一定的用处的,所以就利用暑假这段时间来学习一下。但是光看书没有用,几个月之前,我用C#实现了一个飞信发短信的接口。所以这次,以学习MFC为目的,写了一个MFC版的飞信发短信接口。开发工具用的是Visual studio 2005。 其中用到了MFC中的众多功能,如Socket、CString类的使用、Winnet、加密(hash)、ATl提供的正则表达式库和调用Dom解析xml等等。最后,我将该接口做成了一个MFC dll,从而也学习了MFC dll的制作和使用。编译的时候采用默认的Unicode编码。另外,其中还涉及到编码的转换等等。在处理字符串的时候基本都用CString,不知道这种习惯好不好。 接口中只提供一个CFetion类,其中提供3个函数,功能主要登陆、发送短信和登出,相当简单,一看就明白。由于其中调用了Com,所以调用的时候需要进行Com的初始化工作。下面是一个使用的例子: #include Fetion.h #pragma comment(lib, MFCFetionSDK.lib) CoInitialize(NULL); CFetion fetion(_T(你的手机号), _T(你的密码)); fetion.Login(); fetion.SendSMSToPhone(_T(好友手机号), _T(要发送的消息。)); fetion.Logout(); CoUninitialize(); 速度方面,我测试一下,还是相当快的,占的内存也非常的少。关于飞信协议方面,还是采用MD5进行加密的,改成SHA1也相当简单。在我之前的文章中,我讲到一些关键技术的实现方法。由于刚刚初学MFC,其中肯定写得很烂,所以代码先不提供了。如果有需要,可以发邮件给我。mailto:ssdut@126.com。 下面说一下,我解决的几个关键性的问题,也方便刚初学MFC的朋友。 如何导出MFC类? 这个问题折磨了我很久,vs2005中新建一个MFC dll的时候会产生一个.def文件,用来导出函数,但我上网查了好多资料,都没有实现用.def导出类。网上有说可以生成map文件后,通过查看其中的信息导出类中的函数。我嫌麻烦,最后通过AFX_CLASS_EXPORT进行导出的。导入用AFX_CLASS_IMPORT。 如何用afxinet.h访问https 飞信在登录的时候用到https,好像我试了一下http同样是可行的,但是我觉得不够安全,所以选择使用https。但是这和C#中一样,访问https的是有会出现证书的问题。网上资料很少,可能是我找资料的方法不对,最后在一个国外网站上找到一个solution。 AfxParseURL(url, type, server, param, port); connection = session.GetHttpConnection(server, port); if(type == 4107) { file = connection-OpenRequest(CHttpConnection::HTTP_VERB_GET, param, NULL, 1, NULL, NULL, INTERNET_FLAG_SECURE | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID); } 编码转换和hash的计算 编码转换用的Windows api中的WideCharToMultiByte和MultiByteToWideChar。而hash用的是#include wincrypt.h。下面是我用到的工具类。 #pragma once // CUtils #pragma region 编码CodePage表 enum CodePages { IBM037=37, IBM437=437, IBM500=500, ASMO_708=708, DOS_720=720, ibm737=737, ibm775=775, ibm850=850, ibm852=852, IBM855=855, ibm857=857, IBM00858=858, IBM860=860, ibm861=861, DOS_862=862, IBM863=863, IBM864=864, IBM865=865, cp866=866, ibm869=869, IBM87

文档评论(0)

v4v5v4I + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档