![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
展开全部
举个例子
//test.dll源码
extern"C" __declspec(export) int add(int a,int b)
{
return a+b;
}
**************************************
//test1.exe源码,调用test.dll
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HINSTANCE htest=LoadLibrary("test.dll");//加载动态链接库,htest保存句柄
if(htest==0)//这里最好判断一下,因为LoadLibrary如果读取失败会返回0
{
cout<<"载入失败"<<endl;
return 1;
}
typedef int (*TEST)(int,int);//定义函数指针类型
TEST test=(TEST)GetProcAddress(htest,"add");//获取函数地址,之后调用test(int,int)就相//当于调用dll里面的add(int,int) ,比如:
cout<<test(1,2)<<endl;
FreeLibrary(htest);//通过句柄来释放动态链接库
return 0;
}
//test.dll源码
extern"C" __declspec(export) int add(int a,int b)
{
return a+b;
}
**************************************
//test1.exe源码,调用test.dll
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HINSTANCE htest=LoadLibrary("test.dll");//加载动态链接库,htest保存句柄
if(htest==0)//这里最好判断一下,因为LoadLibrary如果读取失败会返回0
{
cout<<"载入失败"<<endl;
return 1;
}
typedef int (*TEST)(int,int);//定义函数指针类型
TEST test=(TEST)GetProcAddress(htest,"add");//获取函数地址,之后调用test(int,int)就相//当于调用dll里面的add(int,int) ,比如:
cout<<test(1,2)<<endl;
FreeLibrary(htest);//通过句柄来释放动态链接库
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询