Qt工程使用vs打开,调试、运行都没有问题,但直接点击exe却无法运行
Qt系列文章目录
前言
Qt工程使用vs打开,调试、运行都没有问题,但直接点击exe却无法运行,而且工程中所需要的dll全部包含
一、定位原因
exe是否缺少依赖的dll
1. 首先进入调试模式,加载dll
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\CallCartDll.exe”。已加载符号。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\ntdll.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\kernel32.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\KernelBase.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\vcruntime140d.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\msvcp140d.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\ucrtbased.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\vcruntime140_1d.dll”。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\CartDll.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libmmd.dll”。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\msvcr110.dll”。
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libmmd.dll”
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libifportmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libifcoremd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libifportmd.dll”
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\libifcoremd.dll”
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\svml_dispmd.dll”。
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\debug\svml_dispmd.dll”
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\libmmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\libifportmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\libifcoremd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\libifportmd.dll”
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\libifcoremd.dll”
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\svml_dispmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已卸载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\svml_dispmd.dll”
“CallCartDll.exe”(Win32): 已加载“C:\Users\ASUS\anaconda3\Library\bin\libifportmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\user32.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\win32u.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\gdi32.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Users\ASUS\anaconda3\Library\bin\libifcoremd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\gdi32full.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\imagehlp.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\msvcp_win.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\ucrtbase.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\advapi32.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\msvcrt.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\sechost.dll”。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\rpcrt4.dll”。
“CallCartDll.exe”(Win32): 已加载“E:\osg\work\CARTDLL_demo_20220520\CallCartDll\svml_dispmd.dll”。模块已生成,不包含符号。
“CallCartDll.exe”(Win32): 已加载“C:\Windows\System32\imm32.dll”。
int main()
{
HINSTANCE hlib=LoadLibrary(TEXT("CartDll.dll"));
if(!hlib)
{
cout<<"open dll error!"<<endl;
}
cartfun cart1=(cartfun)GetProcAddress(hlib,"cart");
2. 根据vs2019调试信息依赖的dll如上所示
我把相关dll全部复制到CallCartDll.exe 同级目录下,点击exe,还是无法正常运行,但在工程中调试、运行都没有问题
3. 查看调试信息
查看调试信息,发现CartDll…dll加载成功了