• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wjshan0808

Learn from yesterday, Live for today, For a better tomorrow.
 ————wjshan0808

博客园    首页    新随笔    联系   管理    订阅  订阅

C++动态加载DLL调用方法

一、构建DLL路径

  char szTmp[_MAX_PATH];    
  char* szPath = getcwd(szTmp, _MAX_PATH);//获取当前工作目录
  //构建dll路径
 
strcat(szTmp, DLLNAME);
 
TCHAR wLocation[_MAX_PATH] = { 0 };
 
MultiByteToWideChar(0, 0, szTmp, _MAX_PATH, wLocation, _MAX_PATH * 2);
 

二、加载DLL

//dll资源加载  
HINSTANCE hActive = LoadLibrary(wLocation);

三、调用DLL中函数

typedef void (_stdcall *pfnGetStatus)(long*); 

bool CLASSNAME::IsActive()
{    
    long lStatus = 0;
    pfnGetStatus Func = (pfnGetStatus)GetProcAddress(hActive, "GetStatus");
    if(!Func)
    {    
        // Error;
    }
    else
    {
        Func(&lStatus);
    }
    return lStatus;
} 

四、释放DLL

    if(hActive != NULL)
    {
        FreeLibrary(hActive);
    }

 


posted @ 2016-12-26 09:30  wjshan0808  阅读(18983)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3