SetDllDirectory设定DLL加载路径

今天把项目交给测试的时候发现动态加载dll的时候加载失败了,很疑惑,自己的例子程序可以好好的运行。失败的原因估计是我调用的DLL无法成功调用它所需要的DLL。

Created with Raphaël 2.1.0MyDLLMyDLLDLL ADLL ADLL BDLL BDLL ......DLL ......

然后推测估计是DLL A加载DLL B等其他DLL的时候使用的相对路径,当我从C:\\加载D:\\A\\中的DLL的时候,如果使用相对路径,则会在C:\\中找,这肯定找不到。我原来使用SetCurrentDirectory 改变当前环境,在自己的测试程序上能加载上,但是不知道为什么其他人的程序就加载的时候会失败。
后来找到一个简单的函数SetDllDirectory 可以直接增加一个当前应用程序搜索dll的路径。
SetCurrentDirectory 都不需要了。╮(╯▽╰)╭

TCHAR path[MAX_PATH] = {"D:\\A\\"};
SetDllDirectory(path);
发布了38 篇原创文章 · 获赞 18 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章