现在位置: 首页 > 自动控制 > 文章
  在本文开始之处,先简要地说一下何为短字符和宽字符.       所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信息,可以参考这两本经典著作:《windows 程序设计》,《windows 核心编程》.这两本书关于这两种字符都有比较详细的解说.     宽字符转换为多个短字符是一个难点,不...
阅读全文
2013-04-08 22:26 工业·编程 ⁄ 共 1208字 评论 1 条
Windows 95支持一种动画控件(Animate control),动画控件可以播放AVI格式的动画片(AVI Clip),动画片可以来自一个AVI文件,也可以来自资源中。合理地使用动画控件,可以使程序的界面更加形象生动。     MFC的CAnimateCtrl类封装了动画控件,该类的Create成员函数负责创建动画控件,其声明为: BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 参数dwStyle是如表11.3所示的...
阅读全文
    在这篇文章中,我们会为大家详细推出C++ CreateThread参数的具体应用方法,以帮助大家能够从中获得一些帮助,提高编程效率。那么接下来就让我们一起来看看C++ CreateThread参数的正确使用方法吧。     项目是VS2005下的,用到了CreateThread函数,看到网上说不应该调用CreateThread,而应该使用_beginthreadex。因为刚好用到了,就还是写一下CreateThread中参数的使用方法。 先定义要传递的C...
阅读全文
2013-04-06 22:36 工业·编程 ⁄ 共 208字 暂无评论
刚才写程序,偷了个懒,使用了lstrcpyn来进行unicode的字符拷贝,结果发现少拷贝了一个字符,看了下MSDN: TCHAR chBuffer[512]; lstrcpyn(chBuffer, "abcdefghijklmnop", 4); chBuffer的结果为abc, 也就是指定了长度4,拷贝3个字符,同时加一个'/0'字符。 而strncpy(unicode版本为_tcsncpy)则中规中矩的拷贝参数指定的字符数。
阅读全文
    打开文件目录对话框,我找到的方法就是使用SHBrowseForFolder函数,这个函数的原型是LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi)。函数很简单,就一个返回值和一个参数。参数简单罗列如下 typedef struct _browseinfo {      HWND hwndOwner;            // 父窗口句柄      LPCITEMIDLIST pidlRo...
阅读全文
2013-04-04 21:30 工业·编程 ⁄ 共 681字 暂无评论
//选择目录 void CDemoDlg::OnClickedButtonFolder() {     char szPath[MAX_PATH];     m_folder.GetWindowTextA(szPath, MAX_PATH);     BROWSEINFO bi={};     bi.hwndOwner=m_hWnd;     bi.lpszTitle="请选择输入目录";     bi.lpfn=CDemoDlg::BrowseCall...
阅读全文
2013-04-03 03:27 工业·编程 ⁄ 共 2643字 暂无评论
1)客户端处在FIN_WAIT_1状态,服务器处在SYN_RECV状态; 这个问题也是我最近在实际中碰到的问题,socket连接和断开流程已经前面的几节中讲到了,大家可以参考前面的内容; 怎么出现这样的问题呢?原因是客户端连接服务器,但是服务器限制了客户端的接入数,它只listen没有accept动作,造成客户端每次connect是成功的,但是连接就是建立不起来,客户端又做了,如果发送数据不成功,马上closesocket,然后在新建socket重连,这样...
阅读全文
2013-04-03 03:25 工业·编程 ⁄ 共 961字 暂无评论
1) 如何让socket不进入Time_Wait状态 在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但是linger会导致数据丢失,linger值为0时是强制关闭,无论并发多少多能正常连接上,如果非0会发生部分连接不上的情况!( 可调用setsockopt设置套接字的linger延时标志,同时将延时时间设置为0。...
阅读全文
2013-04-03 03:24 工业·编程 ⁄ 共 1001字 暂无评论
1) socket 客户端 FIN_WAIT_2,而设备端显示CloseWait   这个原因是服务器端没有及时CloseSocket; 下面讲解下socket的断开流程:   TCP报文段首部格式: 序号:本报文段所发送的数据的第一个字节的序号。 确认号ack:期待收到对方下一个报文段的第一个数据字节的序号 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是...
阅读全文
2013-04-03 03:22 工业·编程 ⁄ 共 2572字 暂无评论
1) 在socket有自动重连机制的时候,如果在一个线程中实现socket错误或断线自动重连时,注意将socket设置为非阻塞的,不然当程序退出时,线程可能阻塞在connect函数,造成程序不能及时退出;   原理上是这样的: 1.建立socket 2.将该socket设置为非阻塞模式 3.调用connect() 4.使用select()检查该socket描述符是否可写(注意,是可写) 5.根据select()返回的结果判断connect()结果...
阅读全文