我已将GdiPlus.dll
的较新版本复制到我的项目目录中。
但是窗口总是加载它
“C:\ Windows \ WinSxS文件\ x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6002.23084_x-ww_f3f35550 \ GDIPLUS.DLL”
我在XP上。
答案 0 :(得分:0)
要对DLL加载进行完全控制,请将DLL的完整路径传递给LoadLibrary
。
如果您使用运行时链接,这是可行的。对于加载时间链接,您依赖于DLL搜索顺序。搜索的第一件事是exe加载的目录。也就是说,对于像GDI +这样的操作系统组件来说,无论如何系统都会使用SxS DLL,这似乎是合理的。
您的问题标题是"当前目录"但是在链接DLL时,你永远不想依赖当前目录的值。当前目录的值是不可预测的。
最后,GDI +是一个系统组件,我认为提供自己的GDI + DLL是明智之举。自redistribution of GDI+ is not permitted以来,它很可能也是非法的。也许您正在为您的问题选择错误的解决方案。
答案 1 :(得分:0)
您可以使用此声明将dll
的目录设置为已定义的路径。
function SetDllDirectory(lpPathName:PWideChar): Bool; stdcall; external 'kernel32.dll' name 'SetDllDirectoryW';
请记住在使用dll
后更改路径。