VC++学习笔记1

声明:此为小白学习VC++的学习笔记,因没能在CSDN当中找到相应的私密博客权限,如果有人看到这些文字,请忽略!谢谢!

int 、dword 、wParam 、long 在VC++6.0当中都是4个字节,内存结构一致,在今后的数据类型当中,只要是数值(没有short定义)都可以相互转换,并不影响程序运行!
再者 MessageBox(hwnd,"text","title",type)中"text"传进去的是常量字符串指针,他们的内存模型不一样,传入的是指针,还是内部重载了参数?
createWindow创建的窗口名应与类名相同,不然出错。
在VC++调试过程中,中止了程序,但是进程并没有退出,主要是动态链接库的版本太旧,需要更新DM.DLL 与 TLLOC.DLL版本,更新到新版本就对了。
在调试过程中出现错误也是这个原因,出现以下信息:

Loaded ‘C:\Windows\SysWOW64\winmm.dll’, no matching symbolic information found.
Loaded ‘C:\Windows\SysWOW64\msvcrt.dll’, no matching symbolic information found.
Loaded ‘C:\Windows\SysWOW64\user32.dll’, no matching symbolic information found.
Loaded ‘C:\Windows\SysWOW64\gdi32.dll’, no matching symbolic information found.

这些DLL不是DEBUG版本,没有DEBUG信息,因此会出现调试错误,但不影响程序运行。

首先,创建窗口过程的基本步骤为创建定义窗口类、注册窗口类、显示窗口类与更新窗口类。(更新窗口类并没有细究其中的作用与含义,仅知道这是窗口程序的一部分)
窗口编程难点在于其消息机制,使用MICROSOFT APPLICATION工程建立窗口工程还较容易理解。在程序中定义了窗口过程函数,首先通过GETMESSAGE()函数得到在进程执行过程中外部输入的消息(在消息队列中取出?然后再给发给系统,系统再调用窗口过程函数?),然后通过TranslateMessage()与DispatchMessage()将然后再给发给系统,系统再调用窗口过程函数?不管怎么样,Windows消息机制最后由应用程序的窗口过程函数进行处理。在MFC编程中系统把基本过程函数都封装在底层,看不到基本的过程函数,把过程函数映射到FRAME 、 View 、Document类的消息响应函数当中,这是难点。
在msdn中建议不要使用下列粗体写法,因为GETMESSAGE()返回-1时为获取消息失败,因此要对-1进行处理,但我没能找到失败方法。在窗口函数受到DestroyWindows 后发送PostQuit消息,主要是让主线程WHILE退出,可以利用msg.message退出while循环。如下代码所示。

MSG msg;
msg.message =1;
while(msg.message)
//while(GetMessage(&msg ,NULL , 0 ,0 ))
{
switch(GetMessage(&msg ,NULL , 0 ,0 ))
{case -1 :MessageBox(hwnd,”There is an error” , “warning!”,MB_OK);break;
case 1 :TranslateMessage(&msg);DispatchMessage(&msg);break;
case 0 :msg.message=0;break;
default : break;
}
//MessageBox(hwnd , itoa(msg.time , mytime ,10) , “发送消息的时间”,MB_OK);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值