VC++加载动态库和静态库

来源:互联网 发布:淘宝便宜水果 编辑:程序博客网 时间:2024/05/17 02:43
 

 

静态库包括.lib和.h文件,在工程中使用静态库分为3步:

1在工程中加入静态库,有两种方法:

方法一:项目设置中引用.lib,project-setting-link-object/library modules中添加.lib;(需要在tools/options设置正确的引用路径)

方法二:在项目中直接加入lib,project-add to project-files,选择正确的.lib。

2在工程中包括.h文件;(可能 需要在tools/options设置正确的引用路径)

3在工程中使用静态库中的函数;--大功告成!

动态链接库一般包括.lib(导出函数),.h,.dll,使用动态库有两种情况:

1隐式链接,同使用静态库相似,分为三步:引用.lib,包含头文件,使用导出函数;

2动态加载,直接使用LoadLibrary 加载所需的动态库,然后指定所需的导出函数,效率最高!

 

BOOL CComm::Initial(int protocol)
{
 CString t;
 CreateProtocolF cp;
 
 if(m_protocol) 
  return TRUE;
 ReleaseResource();

 t=m_workdir+"xxx.dll";
 if(m_protocoldll==NULL)
 {
  m_protocoldll = LoadLibrary(t); //载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源,返回库模块的句柄
 }
 if( !m_protocoldll )
 {
  return FALSE;
 }
 cp = (CreateProtocolF)GetProcAddress( m_protocoldll, "CreateProtocol");
 m_protocol=cp(protocol);

 if(m_protocol)
 {
  return TRUE;
 }
 return FALSE;
}