VC编程,为什么在调用一个动态链接库里面定义的函数的时候要在工程设置的c/c++选项中的工程选项中改东西
3个回答
展开全部
有两种方法调用:
1,静态调用。打电话到他们的项目的路径,然后添加以下代码:
的#pragma评论(LIB,的“dege.lib”)
用extern“C”的__declspec(dllimport的经过编译的DLL和LIB文件)FuncA的(/ /参数);
那么你就可以直接使用FuncA的功能,与正常功能。事实上,这是一个静态库,因为你很可能不是一个lib文件,建议使用第二种方式:
2,动态调用。
的typedef INT(* lpFunA)(INT,INT); / /宏定义的函数指针类型,这里假设您的FuncA的是,有两个int参数的函数int类型的,你可以假设的总和新增功能。
添加到使用FunA的地方下面的代码
HINSTANCE HDLL ;/ /定义DLL处理
lpFunA addFun ;/ /自定义函数指针
HDLL =调用LoadLibrary(“.. \ \的调试\ \ dege.dll“);/ /动态加载dll,这里假设你的DLL,你想调用它的工作原理调试
(hDll! = NULL)
地址{
addFun (lpFunA)GetProAddress(HDLL中,“FunA”);/ /获取FunA的
(FunA! = NULL)
{
/ /这里正常使用addFun的,像一个普通的函数 BR />}
FreeLibrary则(HDLL),;/ /使用到释放处理
}
1,静态调用。打电话到他们的项目的路径,然后添加以下代码:
的#pragma评论(LIB,的“dege.lib”)
用extern“C”的__declspec(dllimport的经过编译的DLL和LIB文件)FuncA的(/ /参数);
那么你就可以直接使用FuncA的功能,与正常功能。事实上,这是一个静态库,因为你很可能不是一个lib文件,建议使用第二种方式:
2,动态调用。
的typedef INT(* lpFunA)(INT,INT); / /宏定义的函数指针类型,这里假设您的FuncA的是,有两个int参数的函数int类型的,你可以假设的总和新增功能。
添加到使用FunA的地方下面的代码
HINSTANCE HDLL ;/ /定义DLL处理
lpFunA addFun ;/ /自定义函数指针
HDLL =调用LoadLibrary(“.. \ \的调试\ \ dege.dll“);/ /动态加载dll,这里假设你的DLL,你想调用它的工作原理调试
(hDll! = NULL)
地址{
addFun (lpFunA)GetProAddress(HDLL中,“FunA”);/ /获取FunA的
(FunA! = NULL)
{
/ /这里正常使用addFun的,像一个普通的函数 BR />}
FreeLibrary则(HDLL),;/ /使用到释放处理
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询