《Windows程序设计》(第五版,北大出版社)里提到
窗口过程函数返回类型LRESULT其实就是简单数据类型
LONG,但是我在另一本书上看到这样的程序:
long WINAPI WndProc(....) 请问在Windows编程中,LONG与long有区别吗?
为什么LRESULT CALLBACK WndProc(.....)
可以改写成long WINAPI WndProc(....)?
窗口过程函数返回类型LRESULT其实就是简单数据类型
LONG,但是我在另一本书上看到这样的程序:
long WINAPI WndProc(....) 请问在Windows编程中,LONG与long有区别吗?
为什么LRESULT CALLBACK WndProc(.....)
可以改写成long WINAPI WndProc(....)?
解决方案 »
- 图像中像素的法向量怎么求?
- 以CStatic为基类,从写一个CEdit类
- VC++中开发SOAP,WEB SERVICE的技术有哪些?
- 千分求最快的Base64编码函数
- 大家好,我现在想做一个客户端activex 和服务器通信,但有一些问题我不太明摆,请大家指点!请入内详看
- 求助!如何在单文档里实现打印和打印预览。
- 急需解决的问题!!!!
- 高手请进:使用Create函数动态创建控件时,如何保证其参数nID全局唯一?
- 我的EXE要减肥!
- CertGetNameString函数为什么总是失败
- 新手入门,请教一个简单问题,在线等!
- 请问如何修改CDialogBar,CStatusBar,CToolBar的背景?
至于WINAPI与CALLBACK的本质,看看在windef.h中的定义就清楚了,
#undef far
#undef near
#undef pascal#define far
#define near
#if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
#define pascal __stdcall
#else
#define pascal
#endif#if defined(DOSWIN32) || defined(_MAC)
#define cdecl _cdecl
#ifndef CDECL
#define CDECL _cdecl
#endif
#else
#define cdecl
#ifndef CDECL
#define CDECL
#endif
#endif#ifdef _MAC
#define CALLBACK PASCAL
#define WINAPI CDECL
#define WINAPIV CDECL
#define APIENTRY WINAPI
#define APIPRIVATE CDECL
#ifdef _68K_
#define PASCAL __pascal
#else
#define PASCAL
#endif
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall
#else
#define CALLBACK
#define WINAPI
#define WINAPIV
#define APIENTRY WINAPI
#define APIPRIVATE
#define PASCAL pascal
#endif