怎样调用DLL中的函数类?
有如下的DLL定义:
/////////////////////////////////////////////////////////
--------------------MyDll.h----------------------
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
// This class is exported from the MyDll.dll
class MYDLL_API CMyDll {
public:
CMyDll(void);
// TODO: add your methods here.
int Add(int,int);
};
extern MYDLL_API int nMyDll;
MYDLL_API int fnMyDll(void);
MYDLL_API int __stdcall add(int a,int b);
---------------------MyDll.cpp-----------------------
#include "stdafx.h"
#include "MyDll.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// This is an example of an exported variable
MYDLL_API int nMyDll=0;
// This is an example of an exported function.
MYDLL_API int fnMyDll(void)
{
return 42;
}
MYDLL_API int __stdcall add(int a,int b)
{
return (a+b);
}
// This is the constructor of a class that has been exported.
// see MyDll.h for the class definition
CMyDll::CMyDll()
{
return;
}
int CMyDll::Add(int a,int b)
{
return a+b;
};
-----------------------------------MyDll.def----------------------
LIBRARY MyDll
EXPORTS
add @1
////////////////////////////////////////////////////////
如果要调用函数类的成员函数是不是这样:
typedef int (*PF)(int,int);
PF pfun;
pf=(PF)LoadLibrary(hDll,"CMyDll::Add");
或者不是或者根本不可以?