VC++项目生成的exe和dll,一般都会同一个在debug或release目录下,这样可能会造成不版本的dll互相冲突的问题,需要将不同版本的dll放到不同的运行目录,让exe程序在运行时自动在指定的目录查找并加载dll。
1、将直接依赖的ConvLibc.dll及它间接依赖的dll放入到./debug/depends目录下。
2、在工程属性页->链接器->输入->延迟加载的DLL项中,将直接引用的DLL名称填入。
3、在程序代码中设置dll运行路径。注:如果在调试模式出现引用错误,在可将相对路径改为绝对路径。
#include <Windows.h> #include <libloaderapi.h>int main() {const char* dllPath = ".\\depends";SetDllDirectory(dllPath);......}