建网站要会什么/5118素材网站

建网站要会什么,5118素材网站,怎么做网站原型,.net asp可以外链其它网站吗目录 1、问题描述 2、用Dependency Walker工具打开qr.dll库,查看库与库的依赖关系以及接口调用情况,定位问题 3、使用Beyond Compare工具比较一下正常的msvcr100d.dll和问题msvcr100d.dll的差异 4、最后 C软件异常排查从入门到精通系列教程&#xff…

目录

1、问题描述

2、用Dependency Walker工具打开qr.dll库,查看库与库的依赖关系以及接口调用情况,定位问题

3、使用Beyond Compare工具比较一下正常的msvcr100d.dll和问题msvcr100d.dll的差异

4、最后


C++软件异常排查从入门到精通系列教程(核心精品专栏,订阅量已达600多个,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/125529931C/C++实战专栏(重点专栏,专栏文章已更新500多篇,订阅量已达数百个,欢迎订阅,持续更新中...)https://blog.csdn.net/chenlycly/article/details/140824370C++ 软件开发从入门到实战(重点专栏,专栏文章已更新300多篇,欢迎订阅,持续更新中...)https://blog.csdn.net/chenlycly/category_12695902.htmlVC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件分析工具从入门到精通案例集锦(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/article/details/131405795开源组件及数据库技术(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/category_12458859.html网络编程与网络问题分享(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/category_2276111.html       某天在启动Debug版本的客户端程序时,弹出了找不到某个接口的提示框,于是使用Dependency Walker和Beyond Compare工具详细分析了一下。今天将详细分析过程分享出来,以供大家借鉴或参考。

1、问题描述

       某天在启动Debug版本exe主程序时,弹出了如下的报错提示框:

无法定位程序输入__CppXcptFilter(接口)于动态链接库 E:\QyLink\qr.dll上。注意,这个__CppXcptFilter接口并不是在qr.dll中找不到,而是在qr.dll依赖的某个库中找不到。

       一般出现这种找不到接口的问题,直接用Dependency Walker工具打开qr.dll库查看库与库的依赖关系以及接口调用的情况,就可以找出问题了。

2、用Dependency Walker工具打开qr.dll库,查看库与库的依赖关系以及接口调用情况,定位问题

        于是用Dependency Walker工具打开qr.dll库,如下所示:

问题出在msvcr100d.dll库中。qr.dll调用了msvcr100d.dll库中的导出接口__CppXcptFilter,但看msvcr100d.dll库的导出接口列表居然是空的,所以报出了找不到__CppXcptFilter接口的错误。

       这个msvcr100d.dll是Debug版本的微软C/C++运行时库,里面提供了大量的C/C++运行时函数,__CppXcptFilter应该是其中的一个函数之一,作为dll动态库,这些C/C++运行时函数肯定是导出接口,而Dependency Walker中显示的msvcr100d.dll库的导出接口列表中是空的,一个导出接口都没有,肯定是有问题的。

程序启动时,会优先将依赖的库加载到进程空间中,然后检查上层调用依赖的dll库中的接口能否在这些依赖的dll库中找到。如果调用的接口找不到,则会弹出接不到接口的报错提示框,然后终止dll库加载,终止程序的启动。

       在启动exe主程序时,会优先从exe主程序的所在路径中查找要加载的库,如果找到,则加载该路径中的dll库。对于当前出问题的msvcr100d.dll,就位于当前Debug版本的exe主程序路径中,所以程序启动时加载的就是该路径下的msvcr100d.dll库文件。因为Dependency Walker看不到msvcr100d.dll库的导出接口(一个导出接口都没有),所以怀疑当前Debug路径下的msvcr100d.dll可能是被篡改或者损坏了!

       解决办法很简单,msvcr100d.dll是VS2010带的运行时库,我机器上安装了VS2010,我可以到系统路径C:\Windows\System32系统路径中找到msvcr100d.dll库,直接拷贝到Debug路径中将问题msvcr100d.dll覆盖掉就好了。

此处有个细节需要注意一下,在从系统目录中拷贝msvcr100d.dll库时要注意一下库的位数(32位和64位)。32位模块和64位模块是不能混在一起使用的,否则会出错。假设当前Windows系统是64位的,如果exe主程序是32位的,则需要从C:\Windows\SysWOW64目录下拷贝32位版本的msvcr100d.dll;如果exe主程序是64位的,则需要从C:\Windows\System32目录中拷贝64位版本的msvcr100d.dll。

      关于DLL动态库编程以及动态库问题的相关专题,我写过多篇文章,感兴趣的可以来查看: 

【C++动态库】将C++代码封装成dll动态库有哪些好处?https://blog.csdn.net/chenlycly/article/details/144112995【C++动态库编程】C++名称改编、标准C接口、extern “C“、函数调用约定以及def文件详解https://blog.csdn.net/chenlycly/article/details/132520200【C++动态库】动态库隐式与显式加载 | 为什么要动态加载动态库 | LoadLibrary加载失败 | 参考开源操作系统ReactOS源码 | 用LoadLibraryEx替代LoadLibraryhttps://blog.csdn.net/chenlycly/article/details/143201106【C++动态库】DLL动态库加载失败导致程序启动报错以及DLL库加载失败的常见原因分析与总结https://blog.csdn.net/chenlycly/article/details/142714236


       在这里,给大家重点推荐一下我的几个热门畅销专栏,欢迎订阅:(博客主页还有其他专栏,可以去查看)

专栏1:该专栏是核心精品专栏,当前订阅量已达到600多个,专栏中包含大量项目实战分析案例,有很强的实战参考价值,广受好评!专栏文章持续更新中,已经更新到200篇以上!欢迎订阅!)

C++软件调试与异常排查从入门到精通系列文章汇总https://blog.csdn.net/chenlycly/article/details/125529931

本专栏根据多年C++软件异常排查的项目实践,系统地总结了引发C++软件异常的常见原因以及排查C++软件异常的常用思路与方法,详细讲述了C++软件的调试方法与手段,以图文并茂的方式给出具体的项目问题实战分析实例(很有实战参考价值),带领大家逐步掌握C++软件调试与异常排查的相关技术,适合基础进阶和想做技术提升的相关C++开发人员!

考察一个开发人员的水平,一是看其编码及设计能力,二是要看其软件调试能力!所以软件调试能力(排查软件异常的能力)很重要,必须重视起来!能解决一般人解决不了的问题,既能提升个人能力及价值,也能体现对团队及公司的贡献!

专栏中的文章都是通过项目实战总结出来的,包含大量项目问题实战分析案例,有很强的实战参考价值!专栏文章还在持续更新中,预计文章篇数能更新到200篇以上!

专栏2:(本专栏涵盖了C++多方面的内容,是当前重点打造的专栏,订阅量已达300多个,专栏文章已经更新到500多篇,持续更新中...)

C/C++实战进阶(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/category_11931267.html

以多年的开发实战为基础,总结并讲解一些的C/C++基础与项目实战进阶内容,以图文并茂的方式对相关知识点进行详细地展开与阐述!专栏涉及了C/C++领域多个方面的内容,包括C++基础及编程要点(模版泛型编程、STL容器及算法函数的使用等)、数据结构与算法、C++11及以上新特性(不仅看开源代码会用到,日常编码中也会用到部分新特性,面试时也会涉及到)、常用C++开源库的介绍与使用、代码分享(调用系统API、使用开源库)、常用编程技术(动态库、多线程、多进程、数据库及网络编程等)、软件UI编程(Win32/duilib/QT/MFC)、C++软件调试技术(排查软件异常的手段与方法、分析C++软件异常的基础知识、常用软件分析工具使用、实战问题分析案例等)、设计模式、网络基础知识与网络问题分析进阶内容等。

专栏3:  

C++常用软件分析工具从入门到精通案例集锦汇总(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/article/details/131405795

常用的C++软件辅助分析工具有SPY++、PE工具、Dependency Walker、GDIView、Process Explorer、Process Monitor、API Monitor、Clumsy、Windbg、IDA Pro等,本专栏详细介绍如何使用这些工具去巧妙地分析和解决日常工作中遇到的问题,很有实战参考价值!

专栏4:   

VC++常用功能开发汇总(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/article/details/124272585

将10多年C++开发实践中常用的功能,以高质量的代码展现出来。这些常用的高质量规范代码,可以直接拿到项目中使用,能有效地解决软件开发过程中遇到的问题。

专栏5: 

C++ 软件开发从入门到精通(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/category_12695902.html

根据多年C++软件开发实践,详细地总结了C/C++软件开发相关技术实现细节,分享了大量的实战案例,很有实战参考价值。


3、使用Beyond Compare工具比较一下正常的msvcr100d.dll和问题msvcr100d.dll文件的差异

       我们可以使用Beyond Compare工具比较一下正常的msvcr100d.dll和问题msvcr100d.dll,看看有什么不同。打开这两个文件后,默认比较的是两个文件的版本信息(Version Compare),如下所示:

问题msvcr100d.dll中的版本信息都有异常了,有明显的残缺。dll是二进制文件,我们需要比较一下二进制内容,我们需要到Beyond Compare菜单栏中点击Session -> Compare in New View Using ->Hex Compare,切换到二进制内容比较模式:

切换到二进制比较模式,看到如下的差异:

也看到这两个库有明显的差异。目前基本可以确定当前的问题msvcr100d.dll被损坏或者被篡改了,但到底什么时候被篡改、被什么东西篡改了,就不得而知了。

Beyond Compare工具很好用,平时主要用来比较文本内容和二进制内容,我们在工作中会经常使用。

       之前还写过使用Beyond Compare工具分析实际问题的实例,可以查看我的文章:

使用PE信息查看工具和Beyond Compare文件比较工具排查dll库文件版本不对的问题https://blog.csdn.net/chenlycly/article/details/140731291

4、最后

       这是日常开发过程中遇到的一个小问题,对于有经验的老程序员来说,排查起来可能很简单,但对于新手来说,则有一定的参考价值,所以在此将此问题的排查过程与相关细节分享出来,供大家借鉴或参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CF】Day9——Codeforces Round 953 (Div. 2) BCD

B. New Bakery 题目: 思路: 被标签害了,用什么二分( 很简单的思维题,首先如果a > b,那么全选a就行了,还搞啥活动 否则就选 b - a 天来搞活动,为什么? 首先如果我…

【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的论文解析

前言 在自然语言处理(NLP)和深度学习的快速发展中,Transformer模型和 GPT系列模型扮演了至关重要的角色。本篇博客旨在对这些开创性的论文进行介绍,涵盖它们的提出时间、网络结构等关键信息,能够快速的理解这些模型的设…

OpenGL ES 入门指南:从基础到实战

引言:为什么需要 OpenGL ES? 在当今的嵌入式设备(如智能手机、汽车仪表盘、智能家居中控屏)中,流畅的图形渲染能力是用户体验的核心。OpenGL ES(OpenGL for Embedded Systems) 作为行业标准&am…

51单片机指令系统入门

目录 基本概念讲解 一、机器指令​ 二、汇编指令​ (一)汇编指令的一般格式 (二)按字节数分类的指令 三、高级指令 总结​ 基本概念讲解 指令是计算机(或单片机)中 CPU 能够识别并执行的基本操作命令…

AtCoder Beginner Contest 397(ABCDE)

目录 A - Thermometer 翻译: 思路: 实现: B - Ticket Gate Log 翻译: 思路: 实现: C - Variety Split Easy 翻译: 思路: 实现: D - Cubes 翻译&#xff1a…

Spring Cloud Gateway 生产级实践:高可用 API 网关架构与流量治理解析

API 网关的核心价值 在分布式微服务架构中,API 网关作为系统流量的唯一入口,承担着路由分发、安全防护、流量治理三大核心职责。Spring Cloud Gateway 基于响应式编程模型与 Netty 高性能网络框架,提供灵活的路由规则、动态过滤器链和深度集…

在Pycharm配置conda虚拟环境的Python解释器

〇、前言 今天在配置python解释器时遇到了这样的问题 经过一下午自行摸索、上网搜寻后,终于找到的解决的方案,遂将该方法简要的记录下来,以备后用,并希望能帮助到有同样问题或需求的朋友:) 我所使用的软件的版本如下,假…

集成学习(上):Bagging集成方法

一、什么是集成学习? 在机器学习的世界里,没有哪个模型是完美无缺的。就像古希腊神话中的"盲人摸象",单个模型往往只能捕捉到数据特征的某个侧面。但当我们把多个模型的智慧集合起来,就能像拼图一样还原出完整的真相&a…

Springboot+Vue登录、注册功能(含验证码)(后端!)

我们首先写一个接口,叫login!然后对传入一个user,因为我们前端肯定是要传过来一个user,然后我们后端返回一个user,因为我们要根据这个去校验!我们还引入了一个hutool的一个东西,在pom文件里面引…

冯 • 诺依曼体系结构

冯 • 诺依曼体系结构 一、冯 • 诺依曼体系结构推导阶段 1:初始计算机体系结构(仅输入、运算、输出)阶段 2:加入控制功能,初步形成 CPU 概念阶段 3:性能瓶颈与引入内存阶段 4:最终冯诺依曼体系…

2025人工智能“落地生花”:这六大领域正掀起颠覆性革命

——从医疗到养老,一场“AI”的全民狂欢正在上演 2025年的春天,全球科技界的热搜被一个中国AI大模型“霸榜”——DeepSeek。从春晚的机器人热舞到政务系统的“数字员工上岗”,从医疗诊断到工业炼钢,这场始于春节的技术海啸&#…

蓝耘智算|从静态到动态:探索Maas平台海螺AI图片生成视频功能的强大能力

文章目录 👏一、技术介绍👏二、平台注册👏三、功能体验👏四、总结 随着人工智能技术的快速发展,视频处理和生成技术已经成为了众多行业关注的热点。最近,我有机会体验了蓝耘智算平台的Maas平海螺AI视频产品…

解决从deepseek接口获取的流式响应输出到前端都是undefined的问题

你的前端 EventSource 代码遇到了 undefined 连续输出 的问题,通常是因为: AI 返回的内容被拆成了单个字符,导致前端 JSON.parse(event.data).content 获取到的是单个字符,而 undefined 可能是因为某些数据块没有 content 字段。…

前缀和 之 哈希表 之 和 的奇偶与倍数

文章目录 930.和相同的二元子数组523.连续的子数组和 求解连续子数组的和的问题,常常会使用到这个前缀和的思路,当然当数组存在单调性的时候,可以考虑使用不定长滑动窗口,在这里解释一下,何为数组的和存在这个单调性&a…

Docker Compose 和 Kubernetes(K8s)对比

Docker Compose 和 Kubernetes(K8s)在某些方面有相似的功能,但它们的 核心用途和适用场景不同。以下是它们的主要区别和联系: 1. Docker Compose 和 Kubernetes 的区别 对比项Docker ComposeKubernetes(K8s&#xff0…

晶艺代理,100V3.5A高耐压LA1823完全替换MP9487--启烨科技有限公司

晶艺品牌LA1823是异步降压转换器,COT控制,PFM工作模式, 150KHz/ 250KHz/ 450KHz ,开关频率可调节,输入电压4.5~100V,2A平均电流,峰值电流3.5A,采用ESOP8封装。 晶艺LA1823的特性: 4.…

PLC控制柜在技术创新驱动中功能演进 尤劲恩科技

在智能制造体系中,PLC控制柜不仅承担着传统设备控制的基础功能,更通过工业以太网、PROFIBUS等现场总线技术,构建起分布式控制系统(DCS)。这种拓扑结构使生产线具备实时数据采集、远程监控和智能决策能力,显…

【JavaEE】Spring Boot 日志

目录 一、日志概述二、使用日志2.1 打印日志2.2 日志框架2.2.1 门面 / 外观 模式 2.3 日志级别2.3.1 六大分类2.3.2 使用 2.4 日志级别配置2.5 日志的持久化2.6 日志文件分割2.7 日志文件格式2.8 Slf4j 简单打印日志 一、日志概述 ⽇志主要是为了发现问题, 分析问题, 定位问题…

uniapp APP权限弹框

效果图 第一步 新建一个页面,设置透明 {"path": "pages/permissionDisc/permissionDisc","style": {"navigationBarTitleText": "","navigationStyle": "custom","app-plus": {&…

(性能测试)性能测试工具 2.jmeter的环境搭建 3jmeter元件和4使用实例 5jmeter元件和参数化

目录 性能测试工具 性能测试工具 jemeter环境搭建 jmeter的常用目录介绍 jmeter修改语言和主题--jmeter界面的汉化 jmeter元件 jmeter元件和组件的介绍 jmeter的作用域原则 jmeter的执行顺序 案例:执行顺序 jmeter使用案例 jmeter线程组的介绍 jmeter…