制作DLL的代码 :#define MakeDll_API _declspec(dllexport)
#include "MakeDll.h"
int MyFun(int i)
{
i = i+2;
return i;
}LoadLibrary 调用资格库时,GetProcAddress这句话始终得到空。这是为什么啊。如何改进呢?#include <stdio.h>
#include <windows.h>
typedef int(*lpAddFun)(int); void CLoadLibraryTestDlg::OnButton1()
{
HINSTANCE hDll;
lpAddFun addFun;
hDll = LoadLibrary("MakeDll.dll");
if (hDll != NULL)
{
addFun = (lpAddFun)GetProcAddress(hDll,"MyFun(int i)");
if (addFun != NULL) //为什么addFun总为空呢?
{
int result = 0 ;
result = addFun(2);
}
FreeLibrary(hDll);
}
}
#include "MakeDll.h"
int MyFun(int i)
{
i = i+2;
return i;
}LoadLibrary 调用资格库时,GetProcAddress这句话始终得到空。这是为什么啊。如何改进呢?#include <stdio.h>
#include <windows.h>
typedef int(*lpAddFun)(int); void CLoadLibraryTestDlg::OnButton1()
{
HINSTANCE hDll;
lpAddFun addFun;
hDll = LoadLibrary("MakeDll.dll");
if (hDll != NULL)
{
addFun = (lpAddFun)GetProcAddress(hDll,"MyFun(int i)");
if (addFun != NULL) //为什么addFun总为空呢?
{
int result = 0 ;
result = addFun(2);
}
FreeLibrary(hDll);
}
}
路径不对
----------------------------------------------
囧,你这个写的真是有创意。
extern "C" MakeDll_API int MyFun(int i);//注意你写的这个有问题
addFun = (lpAddFun)GetProcAddress(hDll,"MyFun(int i)");
改成
addFun = (lpAddFun)GetProcAddress(hDll,"MyFun");//只要此导出函数名称
另外你的MyFuck函数必须声明为导出函数.相当于给书建了个目录.
可以通过目录名(函数名)找到页数(函数地址),但是必须声明为导出
楼上也挺搞笑的,看错哪个单词不行,非要把人家的myfun看成myfuck。天才啊……