由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题

article/2025/9/1 23:37:59

 我们用 VS 2005 编写非托管的程序, 在一台未安装 .net 开发环境的机器上运行会出现

"由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题"。

开始时还以为必须要安装 .net Framework 2.0 , 然后安装了 .net Framework 2.0 。发现仍然报错。此时晕了, 这是为什么呢?

网上一查: 才知道是缺少 DLL 文件, 可是我的程序里面有一部分是 MFC 写的,有一部分是 Win32 , 还有很多 DLL, 以及驱动程序,缺少的DLL那就多了, 而且MFC 和 Win32 需要不同的 DLL。

后来用 dependens.exe 查看了各个应用程序需要哪些额外的DLL文件, 发现有些 DLL 确实是目标机器中没有的 ,难怪会报错. 以前用 VC 6.0 时 如果缺少 DLL 会给出提示,现在不给提示真让人晕了,该死的 MS

我做了下面的试验:

(1) 采用 VS 2005 默认的编译器选项, 构建 Win32 程序, 检查他需要哪些额外的 DLL。编译选项如下图所示:


build 后检查生成程序需要下面的 DLL:

MSVCR80D.DLL, msvcrt.dll  在本机我找到了这2 个文件并和应用程序放在了同一目录下, 结构还是报错误。根据已有的资料我知道,还缺少文件, 继续找。

我的VS安装在 E: 盘, 从下面路径中找:

E:/Program Files/Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 我们需要从这个文件夹中拷贝文件 Microsoft.VC80.DebugCRT.manifest ,该文件是文本格式的, 包含了版本信息。

注意现在我们构建的是 Debug 版本, 需要从这个文件中得到该文件。

总结: 构建 Win32 程序时, 采用VS默认的编译选项, 需要下面文件:

(1) MSVCR80D.DLL

(2) msvcrt.dll (我测试过这个文件 , 即使没有也没有关系, 为了保险起见还是加上吧)

(3)E:/Program Files/Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT/Microsoft.VC80.DebugCRT.manifest

现在再试验一下 Release 版本的:

Release 版本的程序直接就可以运行, 根本就不需要什么其它的文件。

我又测试了其它几个项目, win32 Release 版本不需要其它的文件。


MSVCR80D.DLL

MFC: 现在我添加了
mfc80d.dll
mfc80ud.dll
Microsoft.VC80.DebugCRT.manifest
Microsoft.VC80.DebugMFC.manifest
msvcr80d.dll
debug 版本才可以运行

更详细信息:

http://www.busfly.cn/post/5.html


http://chatgpt.dhexx.cn/article/MvRrc6lm.shtml

相关文章

由于应用程序配置不正确,程序未能启动”--原因及解决方法

由于应用程序配置不正确,程序未能启动”--原因及解决方法 http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry 问题描述:当运行由VC 2005 编译的程序时,出现错误消息“由于应用程序配置不正确,程序未能启动.重新安装应用程序可能会纠正这个错误”解决方法…

一种解决运行程序报“应用程序配置不正确”的问题

在我们开发工程中,可能有些情况下,不能在本机进行调试。这个时候我们一般会使用VM(vmware)建立一个虚拟机环境,然后把编译过的程序放在该虚拟机环境下执行调试。可是在某些情况下,不管我们编译的是debug还是release版本…

C# .NET 解决提示“由于应用程序配置不正确,应用程序未能启动..”的错误

C# 应用程序开发时,修改程序代码后,调试运行程序 莫名其妙弹出这个报错。 百度找解药呀,,找了好多方法,,都是 " 项目--->配置属性---->链接器---->清单文件--->生成清单-->设置为&q…

Win11应用程序启动提示配置不正确解决方法

Win11应用程序启动提示配置不正确解决方法分享。近期有不少的用户遇到了在启动应用程序的时候,出现错误提示的问题。出现的错误提示是应用配置不正确,那么这个错误提示问题要怎么去进行解决,一起看看具体的解决方法吧。 解决方法:…

“应用程序配置不正确, 程序无法启动”解决方法

最近在XP 32位系统上用VS2008开发的MFC Application程序在没有安装VS2008的Win7系统上双击运行以后出现了“应用程序配置不正确, 程序无法启动”的bug。经过半天时间的研究整理出三种方案可以用来解决该问题。 方法一:对于不需要运行时函数支持的工程可以采用该方法。 (1)…

nmap参数

nmap参数(转) 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指定网络上的每台主机,不发送任何报文到目标主机: nmap -sL 192.168.1.0/24 探测目标主…

主动扫描技术nmap详解

主动扫描与被扫描目标有一个互动的过程,目标是可能知道自己在被扫描的;主动扫描一般都是针对目标发送特制的数据包,然后根据目标主机的反应来获得一些信息,帮助我们过滤无意义的主机,建立目标的网络拓扑,主…

nmap 扫描数据分析

本案22端口为开放端口,110为未开放端口 Wireshark上使用下面的表达式 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port22 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port110 命令一、 nmap -sS SYN-->SYN ACK-->RST …

Nmap专题

Nmap专题笔记 介绍网络扫描相关概念和Nmap的作用。介绍Nmap相关概念、演示简单的安装过程。列举Nmap的主要参数,介绍相关参数。实例演示Nmap的常用扫描技巧。介绍使用Nmap的脚本扫描。 建议学习方法 1.熟记Nmap的主要参数命令。 2.学习OSI七层模型的相关知识&…

Nmap扫描

基本快速扫描 Nmap 默认发送一个arp的ping数据包来探测目标主机在1-10000范围内所开放的端口。 nmap 10.130.1.43 快速扫描多个目标 nmap <target ip1 address> <target ip2 address> nmap 10.130.1.28 10.130.1.43 详细描述输出扫描 简单扫描并对返回的结果详细描…

Nmap入门

Nmap入门 Nmap介绍 nmap是用来探测网络、目标主机的操作系统&#xff0c;安全审计的工具&#xff0c;可以用来快速扫描。nmap也有图形界面。 特点&#xff1a; 主机测试端口扫描版本检测支持探测脚本的编写 kali虚拟机中本来就有nmap&#xff0c;所以安装好kali之后直接在…

网络安全nmap扫描端口命令详解linux网络探测

简介&#xff1a; nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用…

cut指令

一、定义 正如其名&#xff0c;cut的工作就是“剪”&#xff0c;具体的说就是在文件中负责剪切数据用的。cut以行为单位处理数据&#xff0c;而不是整篇信息分析&#xff0c;这种机制和sed一样。 二、作用 将同一行里面的数据进行分解&#xff0c;最常使用在分析一些数据或文…

jieba分词cut与lcut的区别

从分词的效果来看两者没有区别。 区别在于分词后结果的表示形式。 例如&#xff1a;lcut分词 str_text "本法所称突发事件&#xff0c;是指突然发生&#xff0c;造成或者可能造成严重社会危害&#xff0c;需要采取应急处置措施予以应对的自然灾害、事故灾难、公共卫生…

linux之cut的使用

cut是一个选取命令&#xff0c;就是将一段数据经过分析&#xff0c;取出我们想要的。一般来说&#xff0c;选取信息通常是针对“行”来进行分析的&#xff0c;并不是整篇信息分析的 其语法格式为&#xff1a; cut [-bn] [file] 或 cut [-c][file] 或 cut [-df] [file]使用说明:…

图像分割之(三)从Graph Cut到Grab Cut

图像分割之&#xff08;三&#xff09;从Graph Cut到Grab Cut zouxy09qq.com http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解&#xff0c;而现在我们聊到的GrabCut是对其的改进版&#xff0c;是迭代的Graph Cut。OpenCV中的GrabCut算法是依据《"GrabCut&qu…

shell中cut用法简介

shell中的cut命令 (2010-03-30 17:05:31) 转载▼ 标签&#xff1a; shell cut 杂谈 分类&#xff1a; shell cut是以每一行为一个处理对象的&#xff0c;这种机制和sed是一样的。&#xff08;关于sed的入门文章将在近期发布&#xff09; 2 cut一般以什么为依据呢? 也就是说&a…

Linux-cut

cut命令介绍 cut命令将文件的每一行剪切字节&#xff0c;字符和字段&#xff0c;并将这些字节&#xff0c;字符和字段写到标准输出 提取列&#xff0c;cut命令不能提取空格&#xff0c;可以是制表符或者其他字符 cut [选项][文件] 选项&#xff1a; -b&#xff1a;以字节为单…

Linux字符截取命令-cut

概述 cut是一个选取命令&#xff0c;。一般来说&#xff0c;选取信息通常是针对“行”来进行分析的&#xff0c;并不是整篇信息分析的。 语法 cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、…

反掩码的作用是什么?通配符掩码的作用是什么?—Vecloud

反掩码即路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围&#xff0c;跟子网掩码刚好相反。 它像子网掩码告诉路由器IP地址的哪一位属于网络号一样&#xff0c;通配符掩码告诉路由器为了判断出匹配&#xff0c;它需要检查IP地址中的多少位。这个地址掩码对使我们…