您的位置:首页 > 其它

运行程序exe无法启动,dll找不到

2015-06-10 21:01 323 查看
exe往往要和相关的dll放在一起,a.exe调用b.dll,b.dll调用一系列dll:x,y,z....

要想让a正常运行,必须把所有的生成目录都放在同一个目录

另外公司前辈也教我一种,在程序中加载设置环境变量的方法,来将dll可以被找到:

void ExptOptimization::AddEnvByDllPath()

{

char *path, *ptr;

int i = 0;

ptr = getenv("PATH");

QString strPtr = ptr;

QFileInfo dllFile(m_strEmulatorDllPath);

if(!dllFile.exists())

return;

QString strDllPath = dllFile.dir().path();

strDllPath.replace("/","\\");

if(!strPtr.contains(strDllPath))

{

QString strPath = "PATH=" + strPtr + ";" + strDllPath;

strPath = "PATH=" + strPtr + strPath;

QByteArray byte = strPath.toLocal8Bit();

char* newPath = byte.data();

putenv(newPath);

}

}

另外在属性——框架和引用——添加新引用

导师曾经用最直接的方法,右键工程——添加现有项,将缺少的lib加入后,就没有无法解析的错误了

在工程中,当多个工程的时候,特别要注意设定自己的各个路径要统一一致,简单明了,不要使用绝对路径。。切记

相对路径,相对的是当前执行程序文件所在的文件夹
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: