当前位置: 首页 > news >正文

Visual Studio 2022之Release版本程序发送到其它计算机运行

目录

1、缺少dll​

2、应用程序无法正常启动

3、This application failed to start because no Qt platform plugin could be initialized.


代码在Debug模式下正常运行,然后切换到Release模式下,也正常运行,把第三方平台的dll拷贝到exe所在的目录下,再发送到另一台计算机(未安装Visual Studio与QT),遇到如下问题:

1、缺少dll

如果缺少 DLL 文件,这通常是因为程序依赖的某些动态链接库(DLLs)没有随程序一起被正确部署。以下是一些解决此问题的步骤:

确定缺失的 DLL:首先,需要确定哪些 DLL 文件缺失。当在其他计算机上运行程序时,它通常会报告缺少哪个 DLL。

使用依赖项检查器:使用工具如 Dependency Walker (depends.exe) 或 Process Monitor 来检查您的程序依赖哪些 DLL。这些工具可以帮助识别程序运行所需的所有 DLL。

静态链接 vs 动态链接:如果程序依赖于某些第三方库,考虑将这些库静态链接到程序中,而不是动态链接。静态链接会将库的内容直接包含在您的可执行文件中,从而避免 DLL 依赖问题。但是,请注意,静态链接可能会增加可执行文件的大小。

部署 DLL:对于动态链接的库,需要确保所有必要的 DLL 文件都与程序一起部署。这通常意味着将 DLL 文件复制到与可执行文件相同的目录中,或者将它们安装到目标计算机上的系统目录(如 C:\Windows\System32 或 C:\Windows\SysWOW64)中。

使用 Visual Studio 的部署项目:Visual Studio 提供了创建安装项目(如 MSI 安装包)的功能,这可以帮助自动部署您的应用程序及其依赖项。通过安装项目,您可以指定哪些文件应该包括在安装包中,并设置安装过程中的各种选项。

使用第三方安装程序:除了 Visual Studio 的安装项目外,还可以使用如 Inno Setup、NSIS (Nullsoft Scriptable Install System) 或 WiX Toolset 等第三方安装程序来创建安装包。这些工具通常提供了更多的灵活性和自定义选项。

确保运行时环境:如果程序使用了特定的运行时环境(如 .NET Framework、Visual C++ Redistributable 等),请确保目标计算机上也安装了这些运行时环境。

使用延迟加载和错误处理:对于某些可选的 DLL 依赖项,可以使用延迟加载技术,并在运行时检查 DLL 是否可用。如果 DLL 不可用,程序可以优雅地处理这种情况,而不是直接崩溃。

日志和调试:在目标计算机上运行程序时,考虑添加日志记录功能,以便可以更容易地诊断问题。此外,使用调试工具(如 Visual Studio 的远程调试功能)可以帮助更深入地了解问题所在。

运行程序后,弹出如下界面:

在C:\Windows\System32文件夹中找到上述dll,复制到exe所在目录下

2、应用程序无法正常启动

第一步的dll并非只存在C:\Windows\System32文件夹中,如果复制错误,将导致应用程序无法正常启动。​

当Visual Studio 2022编译的Release版本程序在其他计算机上无法正常启动时,可能是由于多种原因导致的。以下是一些可能的解决方案:

检查依赖项:​首先,确保程序所需的所有依赖项都已正确安装和配置。这可能包括运行时库、第三方组件或框架。使用依赖项检查工具可以帮助识别缺少的DLL或组件。

安装Visual C++可再发行组件:如果程序使用了Visual C++编写的代码,确保目标计算机上安装了相应的Visual C++可再发行组件。这些组件包含了程序运行时所需的DLL文件。

配置运行库:在Visual Studio中,您可以配置项目以使用不同的运行库。例如,选择多线程(/MT)或多线程调试(/MTD)选项可以避免程序对运行时库的依赖。确保在发布版本中选择适合的配置。

更新目标计算机上的系统:确保目标计算机上的操作系统和所有必要的更新都已安装。有时,缺少系统更新可能会导致与程序不兼容的问题。

检查程序配置:查看程序的配置文件或设置,确保它们与目标计算机的环境相匹配。例如,检查路径、环境变量或注册表设置是否正确。

使用事件查看器:在目标计算机上,使用事件查看器检查应用程序日志和系统日志,以获取有关程序启动失败的详细信息。这可能会提供有关错误原因的线索。​

3、This application failed to start because no Qt platform plugin could be initialized.

包含QT的程序,运行的时候可能会遇到This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Reinstarlling...这个报错。

错误 "This application failed to start because no Qt platform plugin could be initialized." 通常意味着Qt应用程序在尝试加载平台插件时遇到了问题。平台插件是Qt应用程序用来与操作系统窗口系统进行交互的组件。以下是解决这个问题的一些步骤:

该错误大致意思就是qt平台插件初始化失败了。如图:

解决方法:

将D:\qt\qt5.12.10\5.12.10\msvc2017_64\plugins里面的文件夹复制到exe所在目录下

至此,该exe在另一台计算机正常运行。

相关文章:

Visual Studio 2022之Release版本程序发送到其它计算机运行

目录 1、缺少dll​ 2、应用程序无法正常启动 3、This application failed to start because no Qt platform plugin could be initialized. 代码在Debug模式下正常运行,然后切换到Release模式下,也正常运行,把第三方平台的dll拷贝到exe所在…...

Xcode下载模拟器报错Could not download iOS 17.4 Simulator (21E213).

xcode14以后最小化安装包,从而将模拟器不集中在安装包中 因此xcode14至以后的版本安装后第一次启动会加载提示安装模拟器的提示框 或者根据需要到xcode中进行所需版本|平台的模拟器进行安装 Xcode > Settings > Platforms 问题来了尝试多次都安装失败例如…...

mac在终端设置代理

前言 本篇文章介绍如何在mac终端设置代理服务器,有时候,我们需要在终端进行外网的资源访问,比如我构建v8引擎项目的时候,需要使用gclient更新组件和下载构建工具。如果单单设置了计算机的代理,依然是无法下载资源的&a…...

傅立叶之美:深入研究傅里叶分析背后的原理和数学

一、说明 T傅里叶级数及其伴随的推导是数学在现实世界中最迷人的应用之一。我一直主张通过理解数学来理解我们周围的世界。从使用线性代数设计神经网络,从混沌理论理解太阳系,到弦理论理解宇宙的基本组成部分,数学无处不在。 当然&#xff0c…...

golang学习随便记16-反射

为什么需要反射 下面的例子中编写一个 Sprint 函数,只有1个参数(类型不定),返回和 fmt.Fprintf 类似的格式化后的字符串。实现方法大致为:如果参数类型本身实现了 String() 方法,那调用 String() 方法即可…...

识别恶意IP地址的有效方法

在互联网的环境中,恶意IP地址可能会对网络安全造成严重威胁,例如发起网络攻击、传播恶意软件等。因此,识别恶意IP地址是保护网络安全的重要一环。IP数据云将探讨一些有效的方法来识别恶意IP地址。 IP地址查询:https://www.ipdata…...

探索信号处理:低通滤波器的原理与应用

在信号处理领域,滤波器的应用至关重要,它能够帮助我们从复杂的信号中提取需要的信息,而低通滤波器则是其中一种被广泛应用的滤波器类型。本文旨在深入探讨低通滤波器的基本原理、主要类型以及在实际应用中的作用和实现方式。 ### 1. 低通滤波…...

计算机网络:应用层知识点汇总

文章目录 一、网络应用模型二、域名系统(DNS)三、文本传输协议(FTP)四、电子邮件五、万维网和HTTP协议 一、网络应用模型 p2p也就是对等模型 二、域名系统(DNS) 我们知道,随着人们建立一个网站…...

金三银四!一个年薪160W+的就业方向!

前言 随着越来越多的科技大厂加入鸿蒙生态建设,鸿蒙开发人才正在市场上被争抢。资深工程师开出的年薪高达近百万,架构师更是高至160万,真可谓“鸿蒙猿年薪超百万”。如何抓住新技术红利,尽早上车?你会成为下一个鸿蒙开…...

实现的一个网页版的简易表白墙

实现的一个网页版的表白墙 实现效果 代码截图 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…...

随身WiFi靠谱吗? 看完这篇文章你就懂了?2024随身wifi靠谱品牌推荐

在网络如此发达&#xff0c;随身WiFi如此普遍的2024年&#xff0c;仍有人在质疑随身WiFi到底靠不靠谱&#xff0c;有没有用处。其实只需要回答两个问题&#xff1a; 1、你的流量够用吗&#xff1f;手机的流量包和随身WiFi套餐哪个更便宜&#xff1f; 2、手机流量不够用&#x…...

mysql的trace追踪SQL工具,进行sql优化

trace是MySQL5.6版本后提供的SQL跟踪工具&#xff0c;通过使用trace可以让我们明白optimizer&#xff08;优化器&#xff09;如何选择执行计划。 注意&#xff1a;开启trace工具会影响mysql性能&#xff0c;所以只适合临时分析sql使用&#xff0c;用完之后请立即关闭。 测试数…...

docker部署springboot jar包项目

docker部署springboot jar包项目 前提&#xff0c;服务器环境是docker环境&#xff0c;如果服务器没有安装docker&#xff0c;可以先安装docker环境。 各个环境安装docker&#xff1a; Ubuntu上安装Docker&#xff1a; ubuntu离线安装docker: CentOS7离线安装Docker&#xff1…...

一个八年工作经验老程序员的分享

作为一个 Java 程序员&#xff0c;我在这个行业中工作了多年。在这个过程中&#xff0c;我经历了许多挑战和机遇&#xff0c;也学到了很多宝贵的经验和教训。在这篇文章中&#xff0c;我想分享一些我的感想和思考&#xff0c;希望能够对其他 Java 程序员有所帮助。 一、技术的…...

代码随想录算法训练营第四十三天|动态规划|1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 文章 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果如下&#xff1a; 如果 x y&a…...

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…...

python和shell脚本,每隔五分钟将远端服务器中的文件夹数据下载到跳板机

python脚本 import subprocess import datetime import timedef run_scp_command(source_path, target_path):command [scp -r , source_path, target_path]try:subprocess.run(command, checkTrue)print("File transferred successfully!")except subprocess.Call…...

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候&#xff0c;都是通过Ajax在规定时间内轮询调用web api&#xff0c;这样简单省事&#xff0c;但是当看板多了&#xff08;并发量上来&#xff09;以后&#xff0c;比较消耗服务器的性能&#xff0c;所以最近研究了websocket&#xff0c;希望使用…...

App前端开发跨平台框架比较:React Native、Flutter、Xamarin等

引言 移动应用开发领域的跨平台框架正在不断演进&#xff0c;为开发者提供更多选择。在本文中&#xff0c;我们将比较几个流行的跨平台框架&#xff1a;React Native、Flutter和Xamarin等。讨论它们的优缺点、适用场景以及开发体验。 第一部分 React Native: 优缺点、适用场景…...

VR数字展厅在企业中应用的优势有哪些?

随着VR全景技术的成熟&#xff0c;VR数字展厅逐渐成为了企业展示形象和产品的重要手段之一。VR企业数字展厅是一种通过VR技术、3D建模技术展示企业形象和产品的创新方式&#xff0c;将企业线下的展厅搬到线上&#xff0c;为企业品牌形象带来了很多优势。 VR数字展厅在企业中应用…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...