在CRunTimeClass中,声明如下
struct CRuntimeClass
{
// Attributes
LPCSTR m_lpszClassName; //类名,一般是指包含CRuntimeClass对象的类的名称
int m_nObjectSize; //包含CRuntimeClass对象的类sizeof的大小,不包括它分配的内存
UINT m_wSchema; // schema number of the loaded class
CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class 指向一个建立实例的构造函数#ifdef _AFXDLL
CRuntimeClass* (PASCAL* m_pfnGetBaseClass)();
#else
CRuntimeClass* m_pBaseClass;
#endif
问题如下:
CObject* (PASCAL* m_pfnCreateObject)(); 看它的形式是一个函数指针,但PASCAL*这表示什么意思(PASCAL* m_pfnCreateObject)这一段又是表示什么意思呢,对各位高手说,可能很简单,但对于我这种新手说,它阻止我前进的步伐,请各位大侠帮帮忙
struct CRuntimeClass
{
// Attributes
LPCSTR m_lpszClassName; //类名,一般是指包含CRuntimeClass对象的类的名称
int m_nObjectSize; //包含CRuntimeClass对象的类sizeof的大小,不包括它分配的内存
UINT m_wSchema; // schema number of the loaded class
CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class 指向一个建立实例的构造函数#ifdef _AFXDLL
CRuntimeClass* (PASCAL* m_pfnGetBaseClass)();
#else
CRuntimeClass* m_pBaseClass;
#endif
问题如下:
CObject* (PASCAL* m_pfnCreateObject)(); 看它的形式是一个函数指针,但PASCAL*这表示什么意思(PASCAL* m_pfnCreateObject)这一段又是表示什么意思呢,对各位高手说,可能很简单,但对于我这种新手说,它阻止我前进的步伐,请各位大侠帮帮忙
m_pfnCreateObject是一个函数指针,此函数的调用类型是PASCAL(__stdcall)CreateObject()会调用
pObject = (*m_pfnCreateObject)();