现在位置: 首页 > 自动控制 > 文章
2013-07-26 06:38 工业·编程 ⁄ 共 2291字 暂无评论
数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是"数组降阶" #include <IOSTREAM> using namespace std; void Test( char array[20] ) {     cout << sizeof(array) << endl; // 输出 4 } int main( void ) {     char array[20] = { 0 };     cout << sizeof(array) << endl; // 输...
阅读全文
2013-07-25 06:28 工业·编程 ⁄ 共 4754字 暂无评论
作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭。请与您的供应商联系。呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了。 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针...
阅读全文
    windows的socket在创建后,默认是阻塞调用的,也就是说函数recv,recvfrom,send,sendto等函数都是阻塞的;那么我们如何将他们设置成非阻塞调用呢?我们可以通过windows为我们提供的ioctlsocket 函数实现;先给出一个例子: BOOL LoadSocketSystem(void) { WORD wVersionRequested; SOCKADDR_IN addrSrv; BOOL bRet = FALSE; WSADATA wsaData;    ...
阅读全文
寻找Release版程发生异常退出的地方比Debug版麻烦得多。发生异常的时候windows通常会弹出一个错误对话框,点击详细信息,我们能获得出错的地址和大概的出错信息,然后可以用以下办法分析我们的程序。   一.     用MAP文件定位异常代码位置。 1.         如何生成map文件 打开“Project →Project Settings”,选择 C/C++ 选项卡,在“Debug Info”栏选择“Line N...
阅读全文
作为普及度很高的一个Linux发行版,Ubuntu 13.04已经发布了。本着”软件都要用最新的”的幼稚原则,我来记录一下在虚拟机Vmware下安装这个操作系统的方法。 相关阅读 ----Ubuntu 13.04下构建Qt5开发环境 前提: 已经安装了VMware Workstation 9(安装方法请自行搜索) 已经下载了Ubuntu 13.04的镜像文件(下载地址:http://www.ubuntu.com/download/desktop) 我这里下载的是32位桌面版(ubuntu-13.04-desktop-i386.iso),大...
阅读全文
2013-07-23 09:33 工业·编程 ⁄ 共 1794字 评论 1 条
虽然Qt命运多舛,但是也阻挡不了程序员对它的喜爱。经历了一系列波折之后,现在到在芬兰公司Digia手中,Qt又将迎来一个发展。Qt5就是在这种情况之下发布的。正值Ubuntu刚刚发布了13.04版,我就在这个环境下尝试配置Qt5的开发环境,并记录下来,给有同样需要的朋友作为参考。 1. 如果要使用Qt的商业版,需要向Digia公司(http://qt.digia.com/)购买授权,但是用于学习目的,我们可以选择LGPL授权版本,下载地址为:http://qt-pr...
阅读全文
2013-07-23 09:29 工业·编程 ⁄ 共 229字 暂无评论
工作线程中afxMessageBox被主窗口覆盖,显示在最顶层的解决方法参考: AttachThreadInput(::GetWindowThreadProcessId(::GetForegroundWindow(),NULL), ::GetCurrentThreadId(), TRUE); 具体参考AttachThreadInput的使用。 绑定之后还要解除,TRUE改为FALSE。 这样做是因为禁止设置Modal,如果允许设置,还是用systemmodal方便。
阅读全文
2013-07-23 09:27 工业·编程 ⁄ 共 2080字 暂无评论
方法一 QT4.8.0库+QT Creator 2.4.1 特别声明:此方法极其耗时间,看电脑性能了。配置configure可减少编译时间 1.下载Qt 。进入网址http://qt.nokia.com/downloads,下Qt libraries4.8.0 for linux/x11(228MB) 和QtCreator(65MB)。 2.解压文件。进到存放下载文件的目录下执行tar -xvf qt-everywhere-opensource-src-4.8.0.tar.gz 刚下载文件Qt libraries 4.8.0 for linux/x11(228MB)的文件名 3.执行sudo apt-get install bu...
阅读全文
2013-07-23 00:26 工业·编程 ⁄ 共 961字 暂无评论
这阵子突然重新接手做了下关于TCP连接异常中断的检测, 这里的异常中断指的是目标主机断电, 网线被拔等非正常因素.   这个问题已经被处理很多年了, 无非2种基本解决策略:   1. 应用层心跳   2. 开启协议栈提供的keepalive, 这个和操作系统有关 有些操作系统提供的协议栈并不支持该特性, 因为TCP/IP协议标准中并没有要求实现该特性.   刚刚接手的时候, 直接做了一个应用层心跳, 不过后来和同事讨论了下, 发...
阅读全文
2013-07-23 00:24 工业·编程 ⁄ 共 398字 暂无评论
“Reset”其实是tcp的一种消息之一,用于重置连接,一般来说比如服务器端没有客户端请求的端口或者其他信息不符合时,系统的tcp协议栈就会给客户端回复一个reset通知消息。本来用于应对比如说服务器意外重启等情况的。但很多防火墙系统也用来禁止客户端的连接,如果防火墙发现网络包的规则被触发之后,就可以回一个reset消息让客户端的tcp连接被重置(也就是说断开连接)。     这样比直接把网络包丢弃要好,因为...
阅读全文