相对路径问题求助
用MFC掉dll文件
dll文件中需要加载两个资源文件
#define FDFN"../resource/haarcascade_frontalface_alt.xml"//../resource/
#define ASMFN"../resource/AsmModel.amf"
在dll的头文件中定义了上面两个路径
在MFC中有三个按钮会调用到这个动态链接库
前两个调用时都可以很好的加载到这个路径
但是第三个动用dll时,就会返回加载文件失败的异常
如果改成绝对路径
#define FDFN"E:/TDDOWNLOAD/FaceIdentify_Train1.3.2/Debug/resource/haarcascade_frontalface_alt.xml"
#define ASMFN"E:/TDDOWNLOAD/FaceIdentify_Train1.3.2/Debug/resource/AsmModel.amf"
加载就不出错
不知道有谁遇到过类似情况没,麻烦指点一下
先谢过了
[解决办法]
修改工程属性
Resource ->General ->additional include directories
[解决办法]
将exe、dll文件放在一起,资源文件放在一个单独的文件夹中。你这样的定义不太好
让dll自动搜索当前目录,如果不行,就在dll中写获取路径的操作
[解决办法]
你写的相对路径应该是相对于DLL的路径吧,那你需要确保在调用函数时程序的当前路径是DLL所在的目录,可以用GetCurrentDirectory看看当前路径是不是被改动了,或者用SetCurrentDirectory强制设置当前路径为dll所在的目录。可能你前2个按钮的响应函数里当前路径还在DLL所在目录,有时候程序会改动当前路径,比如打开对话框操作等。