DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1617万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  工具/插件 开发与使用

上一页 1 ··· 8 9 10 11 12 13 14 下一页

摘要:查找并指定符号文件和源文件;指定符号加载行为、使用符号和源服务器上;加载符号自动或在要求。内容查找符号 (.pdb) 文件查找源文件查找符号 (.pdb) 文件说明在之前的 Visual Studio 版本与 2012 中,调试在远程计算机上的管理的代码需要符号文件还查找了远程计算机。现在,这已经不成问题了。所有符号文件必须本地计算机或位于 Visual Studio选项对话框的调试/符号页上指定的位置。如果调试器搜索 .pdb 文件|符号文件的原因需要完全匹配可执行文件?|指定符号位置和加载行为|使用符号服务器以查找符号文件不在本地计算机|查找并加载符号,在调试时|设置符号文件的编译器选项程 阅读全文
posted @ 2013-12-22 16:20 DoubleLi 阅读(20464) 评论(0) 推荐(0) 编辑

摘要:前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件。使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置。本文将讨论以下内容:1、程序编译选项2、利用VS2005分析dump文件3、常见问题讨论一、程序编译选项PDB files contains all debug information like type definition and function prototype.When application crashes, we need the PDB files to analyze the root cause, so make 阅读全文
posted @ 2013-12-22 16:14 DoubleLi 阅读(1896) 评论(0) 推荐(0) 编辑

摘要:.pdb文件,是VS生成的用于调试的符号文件(program database),保存着调试的信息。在VS的工程属性,C/C++,调试信息格式,设置/Zi,那么VS就会在构建项目时创建PDB文件。在这里要区分两种情况:1、构建静态库时,可以在工程属性 –> C/C++ –> 输出文件–>程序数据库名 设置生成的pdb文件名称,如果不指定,默认是生成为VCx0.pdb,这里x是VS版本号,例如用VS2005,就会生成VC80.pdb。这里就会产生一个疑问,编译静态库时默认生成的.pdb文件名字都一样,那引用这个静态库的项目最后能找到正确的.pdb文件吗?答案是肯定的,因为VS会 阅读全文
posted @ 2013-12-22 16:05 DoubleLi 阅读(18220) 评论(1) 推荐(0) 编辑

摘要:当应用程序被链接以后,代码被逐一地翻译为一个个的地址,优化以后的代码可能初看起来更是面目全非。每当我们使用vs或者windbg等微软的调试工具进行调试的时候,我们可以方便地使用变量名来查看内存、可以使用函数名称来下断点、甚至可以指定某个文件的某一行来下断点。这一切背后是什么在指导调试器工作呢?答案就是符号——pdb或者dbg文件(.NET自己有元数据,符号不需要元数据已有的信息)。 程序运行的时候,计算机只需要逐条执行指令即可。而与源代码对应的关系是完全不需要知道的。这就给调试带来了困难,所以无论什么编译都有自己的一套用于对应代码和可执行程序。各种编译器都有自己保存类似这种对应关系的办法,有. 阅读全文
posted @ 2013-12-22 16:03 DoubleLi 阅读(2079) 评论(0) 推荐(0) 编辑

摘要:There are several reasons for xcopy deployment of an application (also known as application local). One main reason is that you are independent of what the target computer has installed.Also your application always uses the “correct” (or better: tested) version of DLLs, regardless of what MS install 阅读全文
posted @ 2013-12-20 16:12 DoubleLi 阅读(493) 评论(0) 推荐(0) 编辑

摘要:If you create a default CRT/MFC application with VS2008, this application will not run on other computers. You application will complain with“This application has failed to start because the application configuration is incorrect”.The problem is that by default VC2008 uses the DLL-version of the CRT 阅读全文
posted @ 2013-12-20 16:11 DoubleLi 阅读(459) 评论(0) 推荐(0) 编辑

摘要:前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件。后者是将exe中的manifest文件提取出来,但是exe中依然有manifest文件! 阅读全文
posted @ 2013-12-20 15:31 DoubleLi 阅读(3089) 评论(0) 推荐(0) 编辑

摘要:右键工程属性 -> 配置属性 -> 生成事件 ->生成后事件,命令行中的路径加上双引号,如copy $(ProjectDir)\export\win32\Debug\$(ProjectName).dll $(OutDir)修改为copy "$(ProjectDir)\export\win32\Debug\$(ProjectName).dll" "$(OutDir)" 阅读全文
posted @ 2013-12-19 20:25 DoubleLi 阅读(1521) 评论(0) 推荐(0) 编辑

摘要:打开Visual Studio 2008 命令提示,使用命令[plain]view plaincopyprint? dumpbin/exportssimple.dll即可查看 阅读全文
posted @ 2013-12-19 20:23 DoubleLi 阅读(493) 评论(0) 推荐(0) 编辑

摘要:Every version of Visual Studio comes with certain versions of the Microsoft libraries, such as the C runtime library, the MFC library, and so on. For example, Visual Studio 2008 comes with version 9.0.21022.8 of the Microsoft C runtime library and version 9.0.21022.8 of the MFC library. You can easi 阅读全文
posted @ 2013-12-19 17:55 DoubleLi 阅读(437) 评论(0) 推荐(0) 编辑

摘要:vc2008程序发布指南2008-05-03 17:46vc2008开发的程序的发布方式可以有5种方式:1. 采用静态链接到crt和MFC. 只要你拥有组成程序的所有源代码,你就可以采用这种方式, 这种方式除了程序变大一点,好处多多: 1) 不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS). 2) 不必产生,嵌入manifest. 3) 也不把vc2008基础库放在程序所在目录.2. exe(嵌入manifest) + vcredist_x86.exe 确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用户先安 阅读全文
posted @ 2013-12-19 17:47 DoubleLi 阅读(654) 评论(0) 推荐(0) 编辑

摘要:恩,为了大家都能很方便的理解,我将尽量简单通俗地进行描述。[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的)[分析]看到这样的提示,当然不会傻到重装咯。第一反应应该是什么配置有问题、或者是缺少了什么依赖的库文件;于是我就根据以前Windows缺少库文件的经验,把所有库文件(××.DLL)统统一股脑地复 阅读全文
posted @ 2013-12-19 17:32 DoubleLi 阅读(21229) 评论(0) 推荐(3) 编辑

摘要:Side-by-sidetechnology is a standard forexecutable filesinWindows 98 Second Edition,Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use ofdynamic-link librariesin Microsoft Windows. Such problems include version conflicts, missing DLLs, duplicate D 阅读全文
posted @ 2013-12-19 16:57 DoubleLi 阅读(687) 评论(0) 推荐(0) 编辑

摘要:本文简要介绍Side-by-side assembly技术,探讨在插件技术中使用类似方法的可能。什么是Side-ty-side AssemblySide-by-side assembly是Windows Xp及以上系统解决动态链接库版本冲突所使用的技术,要点是编译程序时,由Visual Studio生成一个manifest文件,指明本应程序所使用的动态链接库的版本;发布程序时也要发布该manifest文件,供客户计算机上的dll loader根据manifest加载适当版本的dll,如果不发布该项manifest,客户机按默认版本加载Dll。Representation of typical 阅读全文
posted @ 2013-12-19 16:52 DoubleLi 阅读(1113) 评论(0) 推荐(0) 编辑

摘要:什么是Side-by-Side Assembly?Side-by-Side Assembly(建称SxS)是微软在Visual Studio 2005(Windows 2000?)中引入的技术,用来解决Windows平台上的DLL Hell问题。DLL Hell的介绍可以看Wikipedia的文章。简单的说,DLL Hell窘境包括了Windows应用程序依赖的DLL带来的若干问题,包括同名DLL、DLL升级、DLL载入顺序等等。Side-by-Side Assembly按照我的理解,是一种特殊的DLL,按照Side-by-Side Assembly的要求开发的,并用XML格式的manifes 阅读全文
posted @ 2013-12-19 16:48 DoubleLi 阅读(3009) 评论(0) 推荐(0) 编辑

摘要:一、问题编译某个遗留工程后,运行程序时报错,“由于应用程序的配置不正确,应用程序无法启动。重新安装应用程序可能会解决这个问题。”查看生成的Manifest文件如下: 问题出现在第三个assemblyIdentity中version的值与机器上该dll的值不符。二、解决方法需要将manifest中第三个assemblyIdentity中version的值修改为与机器上相应dll的版本。查看该项目的属性发现,【连接器】->【清单文件】->【生成清单】项的值为“是”。由此可见,该manifest... 阅读全文
posted @ 2013-12-19 16:21 DoubleLi 阅读(6106) 评论(0) 推荐(0) 编辑

摘要:什么是vs 程序的manifest文件manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单。为什么要有manifest文件一台pc上,用一组建往往会有不止一个版本(c:/windows/winsxs或系统目录下),程序在加载的时候,不知加载哪个,于是manifest文件来指明。manifest在哪儿,如何创建。如果用VS开发,可以Set通过porperty->configuration properties->linker->manifest file->Generate manifest To Yes来自动创建manif 阅读全文
posted @ 2013-12-19 16:15 DoubleLi 阅读(1219) 评论(0) 推荐(0) 编辑

摘要:开发时有一个工程的一个文件的断点无效,VS 2005提示说当前不会命中断点。源代码与原始版本不同,请在断点选项里设置允许源代码与原始版本不同。这个是针对单个断点进行设置。如果要对所有的断点进行设置,则要在“工具”——〉“选项”——〉“调试”——〉“要求源文件与原始版本完成匹配”去掉勾。 实际上有比这个办法更好的办法,就是将出问题的文件用notepad打开,然后另存为Unicode编码,覆盖原来的文件。 网上另外有一种办法是:通过重新格式化出问题的源文件亦可以解决,即在VS2005中选择 “编辑”——〉“高级”——〉“设置选定内容的格式”。 阅读全文
posted @ 2013-11-21 10:54 DoubleLi 阅读(875) 评论(0) 推荐(0) 编辑

摘要:下列附有VS2008发布程序介绍:vc2008程序发布指南2008-05-0317:46vc2008开发的程序的发布方式可以有5种方式:1.采用静态链接到crt和MFC.只要你拥有组成程序的所有源代码,你就可以采用这种方式,这种方式除了程序变大一点,好处多多:1)不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS).2)不必产生,嵌入manifest.3)也不把vc2008基础库放在程序所在目录.2.exe(嵌入manifest)+vcredist_x86.exe确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用 阅读全文
posted @ 2013-11-13 22:19 DoubleLi 阅读(1440) 评论(0) 推荐(0) 编辑

摘要:在VC++2008的项目中,如何显示地指定要使用的C++库的版本?开发环境:VS2008 SP1 +Win2003 SP2 因为我的VS2008安装了SP1补丁,所以有了9.0.30729.1的MFC库文件(MFC90.DLL MSVCR90.DLL)。新建了一个MFC应用程序,编译为RELEASE版本,叫做“test1.exe”,可以从程序中的清单文件(manifest)看到以下内容:XML code... ... 说明本程序需要... 阅读全文
posted @ 2013-11-13 22:06 DoubleLi 阅读(7089) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 下一页
点击右上角即可分享
微信分享提示