问个白痴有关问题,希望大家别嫌弃,怎么引用DLL
问个白痴问题,希望大家别嫌弃,如何引用DLL
我是初学者,在网上看DLL的文章
有句话是
链接DLL库,即把..\*.lib加入到项目设置链接标签中;
这句话是什么意思?
应该怎么操作,希望解释的详细点。。。快把我搞晕了
------解决方案--------------------
project-> settings-> link-> Object/Library Modules
------解决方案--------------------
在引用的文件里加
#pragma comment(lib, "lib文件名 ")
------解决方案--------------------
上面的是隐式加载的方法
还有显示加载的方法:
1.定义函数指针
typedef HANDLE (*DLL_FUNCTION)();
2.加载DLL并调用函数
HANDLE lpbuf = NULL;
DLL_FUNCTION func;
if(hDll = ::LoadLibrary( "yourdll.dll "))
{
func = (DLL_FUNCTION)GetProcAddress(hDll, "YourFunction ");
ASSERT(GetScr);
}
else
{
AfxMessageBox( "Load dll failed! ");
return;
}
(*func)();
------解决方案--------------------
呵呵,GetScr都应为func
------解决方案--------------------
楼上的兄弟已经说的非常明白了,调用动态库基本就是这两种,还有就是可以生成静态lib,这也是一种方法,
我是初学者,在网上看DLL的文章
有句话是
链接DLL库,即把..\*.lib加入到项目设置链接标签中;
这句话是什么意思?
应该怎么操作,希望解释的详细点。。。快把我搞晕了
------解决方案--------------------
project-> settings-> link-> Object/Library Modules
------解决方案--------------------
在引用的文件里加
#pragma comment(lib, "lib文件名 ")
------解决方案--------------------
上面的是隐式加载的方法
还有显示加载的方法:
1.定义函数指针
typedef HANDLE (*DLL_FUNCTION)();
2.加载DLL并调用函数
HANDLE lpbuf = NULL;
DLL_FUNCTION func;
if(hDll = ::LoadLibrary( "yourdll.dll "))
{
func = (DLL_FUNCTION)GetProcAddress(hDll, "YourFunction ");
ASSERT(GetScr);
}
else
{
AfxMessageBox( "Load dll failed! ");
return;
}
(*func)();
------解决方案--------------------
呵呵,GetScr都应为func
------解决方案--------------------
楼上的兄弟已经说的非常明白了,调用动态库基本就是这两种,还有就是可以生成静态lib,这也是一种方法,