我在MSDN上找到了这个示例,我正在尝试使用它,但是我在使用参数(http://msdn.microsoft.com/en-us/library/ms686944(VS.85).aspx)时遇到问题
下面是我尝试使用的代码,我试图调用的方法有4个参数(CString a,CString b,CString c,BOOL d)。
extern "C" __declspec(dllexport) int __stdcall
ImportFile(CString a, CString b, CString c, BOOL d)
{
HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
// Get a handle to the DLL module.
hinstLib = LoadLibrary(TEXT("C:\MyDll.dll"));
// If the handle is valid, try to get the function address.
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "TestFunction");
// If the function address is valid, call the function.
if (NULL != ProcAdd)
{
fRunTimeLinkSuccess = TRUE;
(ProcAdd) (a, b, c, d);
}
// Free the DLL module.
fFreeResult = FreeLibrary(hinstLib);
}
// If unable to call the DLL function
if (!fRunTimeLinkSuccess)
return -1;
return 0;
}
任何想法我做错了什么?在此先感谢!!!
答案 0 :(得分:4)
我现在正在使用它...我错过了定义的typedef中的额外参数:
typedef int (__cdecl *MYPROC)(CString a, CString b, CString c, BOOL d);