转自:http://blog.sina.com.cn/s/blog_4d66279f010009d9.html
数据类型 对应基本数据类型 说明
BOOL int 布尔值
BSTR unsigned short * 32位字符指针
BYTE unsigned char 8位无符号整数
COLORREF unsigned long 用作颜色值的32位值
DWORD unsigned long 32位无符号整数,段地址和相关的偏移地址
LONG long 32位带符号整数
LPARAM long 作为参数传递给窗口过程或回调函数的32位值
LPCSTR const char * 指向字符串常量的32位指针
LPSTR char * 指向字符串的32位指针
LPCTSTR const char * 指向可移植的Unicode和DBCS字符串常量的32位指针
LPTSTR char * 指向可移植为Unicode和DBCS字符串的32位指针
LPVOID void * 指向未定义类型的32位指针
LRESULT long 来自窗口过程或回调函数的32位返回值
UINT unsigned int 32位无符号整数
WORD unsigned short 16位无符号整数
WPARAM unsigned int 当作参数传递给窗口过程或回调函数的32位值
WNDPROC long (__stdcall *) 指向窗口过程的32位指针
(void *,unsigned int,unsigned int,long)
LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候在转换回来。
例如:
class CMyClass
{
void Start();
static UINT StartThread(LPVOID lParam);
};
void CMyClass::Start()
{
AfxBeginThread(StartThread, this);
}
UINT CMyClass::StartThread(LPVOID lParam)
{
CMyClass * pMyClass = (CMyClass*)lParam;
...
return 0;
}