随笔分类 - VC++
摘要:刚才在将一个vc++6.0迁移到vs2010下的时候,发现CTimer::Format总是报错,对比了下vc++6.0和vs2010下的同一个变量,结果变量的值不同。查了一下,发现time_t 在vc6.0和vs2010下的定义不一样。以下内容转自:http://blog.csdn.net/shengfang666/article/details/8485631time_t类型。在VC6下,该类型定义如下:typedef long time_t; /* time value */但在VS2010中定义如下:#ifndef _TIME_T_DEFINED#ifdef _USE_32...
阅读全文
摘要:前几日在给一个进程守护程序添加定时重启功能时,需要获取当前的时间,在程序中调用了GetCurrentTime(),程序总是运行不正常,调试发现,通过GetCurrentTime()得到的时间是19xx年,时间明显是错误的。上网搜索了一下,才发现MFC中有两个函数。一个是CTime::GetCurrentTime(),另一个是GetCurrentTime().两个函数重名,但时间上返回值是不一样的。GetCurrentTime()的返回值是距离系统启动时的微秒数。CTime::GetCurrentTime()的返回值才是我们需要的当前的系统时间。
阅读全文
摘要:起因最近用mfc做了不少小软件,界面上都是基于CDialog或者CFormView,界面不能缩放一直是问题。一个办法是在OnSize()里面调用所有控件的MoveWindow()函数,根据比例调整控件大小。但是在界面上控件比较多的时候,这个发放就显得很繁琐了。于是我写了一个CAutoResize类,去实现控件的统一缩放。工作原理原理上很简单,对于MFC中的CDilalog,它的信息都存在程序文件夹下的XXX.rc中,XXX是项目名称。如下图所示,CAutoResize类首先就读取XXX.rc,先获取控件长宽信息,dlgWidth和dlgHeight。然后获取相应控件上的ID,x和y坐标,控件宽
阅读全文
摘要:strcpy()调用时是遇到字符串结束'\0'就停止复制,在处理一般的字符串时没有问题。但我用在数据接收发送时就会出问题,我有一段16进制数据存在szBuffer[]里,然后用strcpy()拷贝到另外一个数组,另外一个数组有时就只有部分数据。原因在于数据里面有0x00,strcpy()遇到0x00就停止,于是就出现上述问题。最好还是用memcpy()这种有长度参数的函数。
阅读全文
摘要:最近在做一个设备监控软件,是在另外一个软件的基础上修改的, 主要用到socket进行发送和接收。但是在接收的的过程中recv()的返回出错,GetLastError()得到10038, 错误码描述为Socket operation on non-socket。意思是socket不对。但是代码中的整个接收过程并没有对socket进行改动。这个问题令我头疼不已。经过大半天的调试,才发现原因不在socket上,而是接收数组问题,原设备的接收数组容量太小,我之前没有对接收数组进行修改。而socket的定义就在接收数组的后面。BYTE recvData[128];SOCKET socket;数据接收是我
阅读全文
摘要:Custom Draw新一篇:钩子函数common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性有什么好处。Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDRAW),就可以让Windows为你干活了,你就不用被逼去处理"重绘过程"中所有的脏活了。这篇文章的焦点是如何在一个LISTCTRL控件上使用Custom Draw
阅读全文

浙公网安备 33010602011771号