现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-12-02 01:52 工业·编程 ⁄ 共 2760字 暂无评论
在写这篇文章之前,让我们先回顾一下编译器通过匹配过程确定调用哪一个函数的匹配顺序: (1)寻找和使用最符合函数名和参数类型(包括返回值)的函数,若找到则调用; (2)否则,寻找一个函数模板,将其实例化产生一个匹配的重载函数,若找到则调用; (3)否则,寻找可以通过类型转换进行参数匹配的重载函数,若找到则调用它。 如果以上步骤均未找到匹配函数,则这个调用是错误的;如果这个调用有多于一个的匹配选译,则调用...
阅读全文
2012-12-02 01:48 工业·编程 ⁄ 共 702字 暂无评论
只要用到网络开发啊,就一定会用到序列化反序列化。 1,自定义结构体 struct test { int len; int type; char data[10]; } test* data=(test*) buffer. 缺点:明文,只支持基本类型,不支持变长结构 2,在1的基础上,自定义一个缓冲类,存放一个消息。把消息写入缓冲,通过支持string, vector, map, userdata等,来实现各种结构体格式。 inline BytesBuffer& operator<<(BytesBuffer& buffer, const std::basic_st...
阅读全文
2012-12-01 21:29 工业·编程 ⁄ 共 1330字 暂无评论
首先解释一段截取的网络数据认识一下。(由a_la_lei解释) 1、-> syn(这一步是初始化发送端的ISN。理论上,它的数据字段没有任何值,消耗的是一个虚字节) TCP: Sequence number = 4071231308 TCP: Acknowledgement number = 0 2、<- ack syn(初始化接收端的ISN,并对收到的包进行确认。因为确认的方式是累计确认,所以尽管第1步传输了一个虚字节,但ACK仍旧是4071231308+1=4071231309) TCP: Sequence number...
阅读全文
2012-12-01 21:26 工业·编程 ⁄ 共 887字 暂无评论
重载PreTranslateMessage函数屏蔽回车和ESC的消息: BOOL C***Dlg::PreTranslateMessage(MSG* pMsg) {   if(WM_KEYDOWN == pMsg->message )   {       UINT nKey = (int) pMsg->wParam;       if( VK_RETURN == nKey || VK_ESCAPE == nKey ) return TRUE ;    }    return CDialog::PreTranslateMessage(pMsg); } 关于PreTran...
阅读全文
2012-11-30 21:24 工业·编程 ⁄ 共 2030字 暂无评论
// MyThreadTimer.h #pragma once class MyThreadTimer : public CWinThread { DECLARE_MESSAGE_MAP() public:         MyThreadTimer(void);         ~MyThreadTimer(void); public:         bool start(int second);         void stop(); p...
阅读全文
2012-11-29 20:27 工业·编程 ⁄ 共 2330字 暂无评论
    窗口子类化技术最大的特点就是能够截取Windows的消息。一旦用户自定义的窗口函数截取了传向原窗口函数的消息,就可以对被截取的消息进行如下处理: 将其传给原来的窗口函数。这是对大多数消息应该采取的措施,因为子类通常只对原来的窗口特性作少量的改动. 截取该消息,阻止其向原窗口函数发送。 修改该消息,修改完毕以后再向原窗口函数发送。 Windows SDK提供了一些设计好的窗口类,如EDIT、LISTBOX、TREEV...
阅读全文
2012-11-28 00:26 工业·编程 ⁄ 共 1117字 暂无评论
比较软件的版本号函数,版本号的形式为3..0.2.1 支持无限位。 /*++ Routine Description: 1.比较版本号, 递归实现 History: 13-November-2007 13:42 - 刘峻聪 - Create --*/ BOOL CUpdateFun::IsNewVersion(CString strOldVersion, CString strNewVersion) {     if (strOldVersion == _T("") && strNewVersion == _T(""))     {    ...
阅读全文
2012-11-28 00:24 工业·编程 ⁄ 共 337字 暂无评论
ATM的外围设备包括读卡器,密码键盘,流水打印机等, 通过串口和ATM的主机交互, 实现主机和外围设备的通讯功能的程序叫"驱动库", 而用户看到的ATM机器的屏幕里的软件是应用层. 应用层调用驱动库来实现ATM的诸多功能. 这种模式的项目在分工的问题上,常常出现这种情况:一些功能是放在应用层还是放在驱动层? 公司的开发人员会围绕这些问题 争得面红耳赤. 其实, 驱动层只需要实现简单的操作,比如硬件的初始化, 发送数据, 关...
阅读全文
1.MFC获取文件夹路径信息 [cpp] view plaincopy CString GetPath()  {  CString strPath = "";  BROWSEINFO bInfo;  ZeroMemory(&bInfo, sizeof(bInfo));  bInfo.hwndOwner = m_hWnd;  bInfo.lpszTitle = _T("请选择路径: ");  bInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_EDITBOX;         LPITEMIDLIST lpDlist; /...
阅读全文
1.建一个test的文件夹,在该文件夹下创建六个文件夹,分别命名为:demo、include、lib、obj、prj、src用于保存VC项目生成的的各种文件。 2.创建一个Win32 Static Library工程,保存到prj目录下,命名为test,这个是可以直接编译的,可以生成一个lib文件来被应用程序调用,在工程-设置-选择tese工程,设置其Library到../../lib/dbg/test.lib。其他文件设置同下。 3.创建一个MFC应用程序,保存到demo目录下,命名为*** 4.设置应用...
阅读全文