DLL中加载其它DLL使用LoadLibrary加载动态库失败的解决办法 loadlibrary失败

DLL中加载其它DLL使用LoadLibrary加载动态库失败的解决办法 loadlibrary失败

方式一 采用LoadLibraryEx

若DLL不在调用方的同一目录下,可以用LoadLibrary(L"DLL绝对路径")加载。但若调用的DLL内部又调用另外一个DLL,此时调用仍会失败。解决办法是用LoadLibraryEx:
eg: LoadLibraryEx("DLL绝对路径", NULL,LOAD_WITH_ALTERED_SEARCH_PATH);
通过指定LOAD_WITH_ALTERED_SEARCH_PATH,让系统DLL搜索顺序从DLL所在目录开始。

方式二 采用SetCurrentDir

跨目录调用dll,你应该这样
1 用GetCurrentDir保存当前的工作目录
2 用SetCurrentDir将当前的工作目录,设置为你的DLL所在的路径,需要使用绝对路径
3 用LoadLibrary你的DLL
4 使用SetCurrentDir恢复到原来的工作路径

eg:

TCHAR chCurDir[MAX_PATH] = {0};
GetCurrentDirectory(MAX_PATH, chCurDir);
SetCurrentDirectory(_T("c:\test\"));
m_hDLL = LoadLibrary(_T("demo.dll"));
SetCurrentDirectory(chCurDir);

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/272914.html

更多阅读

怎么在Excel表格中加斜线 excel2007怎么加斜线

怎么在Excel表格中加斜线——简介在使用Excel表格的时候,有时候遇到要在表格中加斜线的情况,你知道该怎么在怎么在Excel表格中加斜线吗?下面的精炼里面冰冰就给大家介绍一下怎么在Excel表格中加斜线的方法怎么在Excel表格中加斜线——

win7"计算机中丢失d3dx9_42.dll"的解决方法 丢失d3dx942.dll

在win7下玩大型游戏,安装完成后,打开快捷方式,报错,"计算机中丢失d3dx9_42.dll"  ,以NFS14极品飞车14为例,计算机中丢失d3dx9_42.dll大多是因为win7系统自带的DX11,没有很好的兼容基于DX9的游戏所致,解决办法:操作系统 win7 32位下载DX9的

声明:《DLL中加载其它DLL使用LoadLibrary加载动态库失败的解决办法 loadlibrary失败》为网友暖我心分享!如侵犯到您的合法权益请联系我们删除