2012-09-01 18:08
⁄ 工业·编程
⁄ 共 5944字
关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。
使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在真正异常的时候,才使用异常。那什么是“真正异常的时候”?在回答这个问题以...
c++阅读全文
2012-09-01 07:01
⁄ 工业·编程
⁄ 共 1635字
C++当中常常需要一个全局唯一的对象实例,这时候,我们就会想到单件模式。如何实现这一模式?全局变量当然是一个简单可行的方法,然而,这太丑陋。嗯,其实,丑陋倒也罢了,最严重的是它将引诱程序员滥用全局变量,这将导致维护的灾难。
既然全局变量是可能有害的,那么,我们我们把它隐藏一下,放到某个类当中去,作为类的静态数据成员。这看上去不错,我也这么认为。当我们只是...
c++, 变量初始化阅读全文
2012-09-01 07:00
⁄ 工业·编程
⁄ 共 846字
一直以来,我都不是太理解这种方式,在 C++函数调用原理理解中,我仅仅是简单的认为,那么做,可能是因为CC平时用的少,而且好看:)所以初始化这样一个不怎么常用的变量,可以让人很快发现。。。。事实上,的确有这样的效果,当Debug时,我看一个变量为CC时的确第一时间就能反应过来,我又犯了一个不可饶恕的低级错误,又忘了初始化了,这点在变量为指针类型的时候更加严重。
但是,在学习过反汇编这么久后...
软件开发阅读全文
2012-09-01 06:58
⁄ 工业·编程
⁄ 共 4691字
空程序:
int main()
{
00411360 push ebp ;压入ebp
00411361 mov ebp,esp ;ebp = esp,保留esp,待函数调用完再恢复,因为函数调用中肯定会用到esp.
00411363 sub esp,0C0h ;esp-=0C...
c++阅读全文
2012-09-01 06:57
⁄ 工业·编程
⁄ 共 1585字
为了相对透彻的了解C程序运行期的初始化顺序,首先介绍一些名词定义。用过Java的同志都知道, Java是一种跨平台语言。真的是所有的平台都能自如的运行Java程序吗?当然不可能。运行它的前提是你需要安装Java Run-time(JRE)。C语言也需要自己的运行期类库,windows系统正好支持这种类库,所以C++程序可以顺利的在windows系统上运行了。这个类库叫C Run-time(CRT), CRT这个名词可能并不陌生,大家在很多地方都...
c++阅读全文
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...
c++阅读全文
2012-09-01 06:28
⁄ 工业·编程
⁄ 共 2217字
目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏。众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢?本实例针对这个问题提出解决的办法。
一、实现方法
解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLB...
UI界面阅读全文
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()是虚函数。如果要创建一个非默认风格的窗口,...
MFC阅读全文
2012-09-01 06:22
⁄ 工业·编程
⁄ 共 490字
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,...
UI界面阅读全文
2012-09-01 06:20
⁄ 工业·编程
⁄ 共 563字
1、最笨和最简便的方法:把IDR_MAINFRAME这个图标资源删了(delete),然后引入或新建你想要的图标,并将其ID号改为IDR_MAINFRAME,然后大功告成。
2、在OnCreate( )函数中加入如下代码:SetIcon(LoadIcon(IDI_ICON1),false或true) 关于这些函数的参数及返回值参见msdn,这时运行程序会发现其左上角的图标已经变成你想要的了,可是生成的exe文件的图标还是默认的,这时找到resource.h文件修改如下,使其值小于IDR_MAINFRAM...
VC编程技巧阅读全文