typedef DWORD (WINAPI *MYAPIFUNCTION)(int nParameter, LPVOID lpParameter);
就是定义一个函数指针,这个函数是这样的: DWORD WINAPI functionname(int n,LPVOID lpP);
要是你知道一个函数的定义要定义一个函数指针指向它的话很容易:
如:float fabs( float f);
typedef float (* FABS)(flaot);
FABS myfabs = ....;//赋值
myfabs( 9.0f );//调用函数
就是定义一个函数指针,这个函数是这样的: DWORD WINAPI functionname(int n,LPVOID lpP);
要是你知道一个函数的定义要定义一个函数指针指向它的话很容易:
如:float fabs( float f);
typedef float (* FABS)(flaot);
FABS myfabs = ....;//赋值
myfabs( 9.0f );//调用函数
int -> 返回值類型
LPSTR->參數類型
A: 定義一個函數指針,如: VOID (*MYPROC) (LPTSTR); 後面不能有{}, 它定義了一個變量MYPROC.
typedef VOID (*typeMYPROC)(LPTSTR); 就像int, 它定義了一個類型typeMYPROC.換句話說:
typedef VOID (*typeMYPROC) (LPTSTR);
typeMYPROC MYPROC;
和
VOID (*MYPROC) (LPTSTR);
的作用是相同的. B: typedef int (*SUMMARY)(int); //定義了一個指向int型返回值且帶有一個int型參數的函數指針類型
HINSTANCE hInst = ::LoadLibrary("*.dll"); //動態裝載DLL
SUMMARY SummaryFun=NULL;
//GetProAddress() 取得要使用函數的地址,需要兩個參數: DLL句柄和函數名, 如"Summary"為DLL中的函數
SummaryFun= (SUMMARY) GetProAddress(hInst,"Summary");
// if(Summary) 要判斷是否返回成功
int nSum=SummaryFun(10);
C: typedef UINT (AFX_CDECL *AFX_THREADPROC)(LPVOID);
//聲明了一個指向UINT型返回值,調用方式為AFX_CDECL且帶有一個LPVOID型參數的函數指針類型.