现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-09-01 18:08 工业·编程 ⁄ 共 5944字 暂无评论
  关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。     使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在真正异常的时候,才使用异常。那什么是“真正异常的时候”?在回答这个问题以...
阅读全文
    C++当中常常需要一个全局唯一的对象实例,这时候,我们就会想到单件模式。如何实现这一模式?全局变量当然是一个简单可行的方法,然而,这太丑陋。嗯,其实,丑陋倒也罢了,最严重的是它将引诱程序员滥用全局变量,这将导致维护的灾难。     既然全局变量是可能有害的,那么,我们我们把它隐藏一下,放到某个类当中去,作为类的静态数据成员。这看上去不错,我也这么认为。当我们只是...
阅读全文
    一直以来,我都不是太理解这种方式,在 C++函数调用原理理解中,我仅仅是简单的认为,那么做,可能是因为CC平时用的少,而且好看:)所以初始化这样一个不怎么常用的变量,可以让人很快发现。。。。事实上,的确有这样的效果,当Debug时,我看一个变量为CC时的确第一时间就能反应过来,我又犯了一个不可饶恕的低级错误,又忘了初始化了,这点在变量为指针类型的时候更加严重。 但是,在学习过反汇编这么久后...
阅读全文
2012-09-01 06:58 工业·编程 ⁄ 共 4691字 评论 1 条
空程序: int main() { 00411360  push        ebp       ;压入ebp 00411361  mov         ebp,esp     ;ebp = esp,保留esp,待函数调用完再恢复,因为函数调用中肯定会用到esp. 00411363  sub         esp,0C0h ;esp-=0C...
阅读全文
2012-09-01 06:57 工业·编程 ⁄ 共 1585字 暂无评论
    为了相对透彻的了解C程序运行期的初始化顺序,首先介绍一些名词定义。用过Java的同志都知道, Java是一种跨平台语言。真的是所有的平台都能自如的运行Java程序吗?当然不可能。运行它的前提是你需要安装Java Run-time(JRE)。C语言也需要自己的运行期类库,windows系统正好支持这种类库,所以C++程序可以顺利的在windows系统上运行了。这个类库叫C Run-time(CRT), CRT这个名词可能并不陌生,大家在很多地方都...
阅读全文
2012-09-01 06:50 工业·编程 ⁄ 共 672字 暂无评论
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 void main() 5 { 6 char cArray[15]; 7     int i; 8    //memset(aa,0,15); 9   printf("%d  %d/n",sizeof(cArray), strlen(cArray)); 10   for(i=0;i<10;i++) 11   {   12    cArray[i...
阅读全文
    目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏。众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢?本实例针对这个问题提出解决的办法。 一、实现方法     解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLB...
阅读全文
2012-09-01 06:24 工业·编程 ⁄ 共 346字 暂无评论
框架类CMainFrame的四个成员函数为:AssertValid()和Dump(),OnCreate()和PreCreateWindow(). (1)AssertValid()用来诊断CMainFrame对象是否有效 (2)Dump()用来输出CMainFrame对象的状态信息。 (3)OnCreate()用来创建工具栏m_wndaToolBar和状态栏m_wndStatusBar,而视图窗口是由基类CFrameWnd的成员函数OnCreate()通过调用OnCreateClient()函数创建的。 (4)PreCreateWindow()是虚函数。如果要创建一个非默认风格的窗口,...
阅读全文
2012-09-01 06:22 工业·编程 ⁄ 共 490字 评论 1 条
1.添加以下变量: public: bool m_bMouseDown; POINT m_ptStart; 2.在构造函数中添加以下代码 m_bMouseDown=false; 3.响应WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP消息.并添加以下代码 OnMouseMove(UINT nFlags,CPoint point) { ...... if(m_bMouseDown) { RECT rect; GetWindowRect(&rect); OffsetRect(&rect,point.x-m_ptStart.x,point.y-m_ptStart.y); MoveWindow(&rect,true); } } OnLButtonDown(UINT nFlags,...
阅读全文
1、最笨和最简便的方法:把IDR_MAINFRAME这个图标资源删了(delete),然后引入或新建你想要的图标,并将其ID号改为IDR_MAINFRAME,然后大功告成。 2、在OnCreate( )函数中加入如下代码:SetIcon(LoadIcon(IDI_ICON1),false或true)  关于这些函数的参数及返回值参见msdn,这时运行程序会发现其左上角的图标已经变成你想要的了,可是生成的exe文件的图标还是默认的,这时找到resource.h文件修改如下,使其值小于IDR_MAINFRAM...
阅读全文