vc2003中有什么工具可以帮助宏展开?

JustLikeTheWind 2006-07-17 03:45:52
我现在使用vc2003开发一个别人开发了一半的项目。其中因为混用了C和C++,所以有不少很繁复的宏,阅读和理解比较困难。
因为手工展开的确非常麻烦,因为有不少嵌套的,很长的宏。所以我现在想请问vc2003有什么工具可以帮助察看展开后的宏代码?
...全文
66 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
代码静态分析工具PC-LINT安装配置 PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,等等。软件除错是软件项目开发成本和延误的主要因素。PClint能够帮你在程序动态测试之前发现编码错误。这样消除错误的成本更低。 使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。并提供编码规则检查,规范软件人员的编码行为。 由于PC-LINT对于一般程序员来说可能比较陌生,有好多人安装了也不知道怎样配置和使用。 下面我就根据自己的安装和配置心得对PC-Lint的安装、配置及使用进行下详细说明.本人主要介绍了将PC-Lint集成到VC++6.0和SourceInsight的方法和步骤。 (一)Windows下C/C++开发工具中,VC6使用较为普遍,因此这里先讲下VC6.0环境中集成pclint的步骤. 首先, 当然要下载软件,正版软件要200多$呢,买不起!所以只好网上找免费的拉。从http://www.61ic.com/down/othe/pclint.rar处可以下载到一个8.0版本的pclint. 1.将pclint.rar解压至c:\, 这样lint文件就位与c:\pclint(安装目录)下了。 2.将c:\pclint\lnt 下的3个文件lib-w32.lnt,env-vc6.lnt,co-msc60.lnt拷贝至c:\pclint下, 再在安装目录下创建std.lnt和options.lnt两个文件,其中std.lnt的内容如下 // contents of std.lnt c:\pclint\co-msc60.lnt c:\pclint\lib-w32.lnt c:\pclint\options.lnt -si4 -sp4 -i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\Include" //end 其中-i后面的路径名为VC的安装路径和VC Include 文件路径,根据自己的修改便可。 options.lnt 内容可为空,为定制内容,以后需要时再添加。 准备工作做完了,下一步就是要将pclint集成到VC6中去,先配置lint使之能对单个C或C++文件进行检查。 1.打开VC6,tools--->customize-->tools 新建一个名为pclint的项,在下面填入 command: C:\pclint\lint-nt.exe arguments: -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt "$(FilePath)" Use Output Window 打上勾 close 完成。 这个在你VC窗口tools菜单下应该多了一个pclint选项,可以用它来运行lint程序,对你的c/c++代码进行静态检查了。 现在就可以用个小程序测试一下pclint了 //test1.cpp #include class X { int *p; public: X() { p = new int[20]; } void init() { memset( p, 20, 'a' ); } ~X() { delete p; } }; 编译这个文件,看下你的编译器给你多少警告,再运行下lint, 可以自己对比一下。 我的机器上,VC产生0 errors 0 warnings, 而lint程序产生了如下8条警告信息,有些还是很有用处的提示,这里就不一一分析了. test.cpp(12): error 783: (Info -- Line does not end with new-line) test.cpp(7): error 1732: (Info -- new in constructor for class 'X' which has no assignment operator) test.cpp(7): error 1733: (Info -- new in constructor for class 'X' which has no copy constru
使用VS6.0(VC++ or other)打开或添加项目时出现[MSDEV.EXE-应用程序错误"0x5003eaed"指令引用的"0x0000000"内存,该内存不能为"read";"0x73d311c7"指令引用的"0x00000004"内存,该内存不能为"read" ],这个可能是VS6.0和OFFICE 2007有冲突的缘故,下面是解决办法: 首先去下载一个FileTool(http://download.microsoft.com/download/vc60ent/s1/6.0/w9xnt4/en-us/filetool.exe 下载后解压缩),下载过来是一个C++原始文件,需要通过VC编译一下产生一个 FileTool.dll 将这个插件复制到X:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 重新打开VC6,Tools->Customize->Add-ins and Macro Files,选中FileTool Developer Studio Add-in即可。 此时打开VC6会有一个浮动工具栏(A O),点击A就是添加文件到工程,点击O就是打开文件。是不是很怪啊,竟然做了一个插件进来,并没有对原先的冲突进行改进。 VC6.0和Visio两个软件有冲突,把Visio卸载掉即可,若卸载无效,可按下述方法添加一个程序补救。 概要 启动 @ @ OpenFile@@ @ 对话框中使用键盘快捷方式键 VisualC++ 中或从 文件 菜单导致以下错误: 0x5003eaed 上 DEVSHL.DLL 中访问冲突 (0xC0000005)。 DevShl.Dll 引用 0x0000000 上内存。 无法读取内存。 当您从菜单中选择, 单击会出现相同错误。 FileTool.exe 是示例替换 VisualC++ 使用 Developer Studio 对象模型中 打开 和 添加到项目 菜单项。 开发 VisualStudio 对象模型包含方法, 同时打开文件并向项目添加文件。 BuildProject 对象包含 AddFile 方法将文件添加到项目。 Documents 对象包含一个可打开到 DeveloperStudio 文件 打开 方法。 这些可用于或外接程序。 安装加载项 下载FileTool.exe 1. 运行 FileTool.Exe 来提取 VisualC++6.0 项目。 2. 生成在 VisualC++ 项目 发布 或 调试 配置中。 3. VisualC++, 中单击 工具 菜单中 自定义 。 4. 在 自定义 对话框中, 单击 Add - Ins and 文件 选项卡。 5. 单击 浏览 按钮并定位步骤 2 中生成 FileTool.dll 文件。 6. 单击 确定 以保存设置。 对于两个命令工具栏出现。 删除快捷键 加载外接后, 可以删除为菜单项, 停止 VisualC++ 并将其分配给两外接命令按照下面步骤快捷键: 1. 从 VisualC++ 工具 菜单, 单击 自定义 。 2. 在 自定义 对话框中, 单击 键盘 选项卡。 3. 从 类别 中选择 文件 。 4. 在命令窗口, 选择 FileOpen 。 5. 当前密钥 窗口, 中选择 CTRL+O 项, 然后单击 删除 。 6. 从 类别 中选择 项目 。 7. 在命令窗口, 选择 InsertFilesIntoProject 。 如果没有与其, 关联快捷方式请按照步骤 5 来删除它。 有默认为没有快捷键对该项。 8. 从 类别 中选择 加载项 。 9. 两加载命令 AddFileToProject 和 OpenFile 命令窗口中显示。 10. 选择 OpenFile 然后 按新快捷键密钥 框放置光标、 按快捷键或组合键, 要, 并单击 指派 。 11. 对其他命令重复上述步骤。 对于两个命令分配快捷键当前密钥窗口中显示。 您可能还希望删除菜单命令并插入其就地 AddIn 命令。 将新 AddIn 命令插入 MenuBar, 使用以下步骤: 1. 从 VisualC++ 工具 菜单, 单击 自定义 。 2. 单击 文件 菜单并拖动 Open 命令的 文件 弹出式注销, 然后释放它。 3. 单击 项目 菜单, 单击 添加到项目 和然后关闭的弹出 文件 命令拖释放它。 4. 在 自定义 对话框中, 选择 命令 选项卡。 5. 从 类别 列表框中选择 外接 。 6. 到 文件 菜单 OpenFile 命令拖放它由 Open 命令 vacated 空间中。 7. AddFileToProject 命令拖 到 AddProject@@@ 项目到 项目 菜单上并放空间 vacated 由命令 文件 中。 版本2 各种悲剧之后终于解决了vc6.0 打开文件报错的问题 “0x5003eaed 的内存错误” 感慨收录下 从 Microsoft 下载中心下载下列文件有: FileTool.exe (http://download.microsoft.com/download/vc60ent/s1/6.0/w9xnt4/en-us/filetool.exe) 自解压 FileTool.exe 文件包含下列文件: 收起该表格展开该表格Commands.cpp 5KB Commands.h 1 KB DSAddIn.cpp 5KB DSAddIn.h 2KB FileTool.cpp 5K FileTool.def 1 KB FileTool.dsp 5KB FileTool.dsw 1 KB FileTool.h 1 KB FileTool.odl 2KB FileTool.rc 5KB FileTool_i.c 2KB FileToolTypes.h 7KB resource.h 1 KB StdAfx.cpp 1 KB StdAfx.h 3KB FileTool.rc2 1 KB TBarLrge.bmp 2KB TBarMedm.bmp 1 KB 有关如何下载 Microsoft 支持文件单击下面的文章编号,以查看 Microsoft 知识库中的相应: 119591 (http://support.microsoft.com/kb/119591/EN-US/ ) 如何从联机服务获取 Microsoft 支持文件 Microsoft 扫描病毒此文件。 Microsoft 使用最新的病毒检测软件在发布该文件的日期中获得的。 该文件存储在安全性得到增强有助于防止任何未经授权的更改对文件的服务器上。 安装外接程序 运行 FileTool.exe 提取 Visual C++ 6.0 项目。 生成 Visual C++ 中 发布 或 调试 配置中的项目。 在 Visual C++,请从 工具 菜单中单击 自定义 。 在 自定义 对话框单击 加载文件 选项卡。 单击 浏览 按钮,并找到生成 FileTool.dll 文件步骤 2。 单击 确定 保存设置。 出现一个对两个命令的工具栏。 注意: 仅在 打开 的命令 Visual C++5.0 中有效。 该 AddFile 方法是使用 Visual Studio 6.0 版本添加的。 删除快捷键 加载外接之后,您可以删除菜单项,停止 Visual C++ 通过执行以下步骤下将它们分配给两个加载项命令的快捷键: 从 Visual C++ 工具 菜单中,单击 自定义 。 在 自定义 对话框单击 键盘 选项卡。 从 类别 框选择 文件 。 在命令窗口中,选择 FileOpen 。 在 当前快捷键 窗口中选择该 Ctrl+O 条目,,然后单击 删除 。 从 类别 框选择 项目 。 在命令窗口中,选择 InsertFilesIntoProject 。 如果有与之关联的快捷方式请执行步骤 5,将其删除。 默认情况下没有为此项目的快捷方式项。 从 类别 框选择 加载 。 这两个加载项命令 AddFileToProject 和 OpenFile 出现在命令窗口中。 选择 OpenFile 然后将光标放在 按新快捷键 框,按快捷键或键组合要然后单击 分配 。 其他命令,请重复上面的步骤。 对两个命令分配的快捷键将出现在当前注册表项窗口中。 您可能还希望删除菜单命令并插入在的位置的 加载项 命令。 若要插入新的 加载项 命令在 MenuBar,使用以下步骤: 从 Visual C++ 工具 菜单中,单击 自定义 。 单击 文件 菜单,然后将 文件 弹出式菜单的 打开 命令拖放并将其释放。 单击 项目 菜单,单击 添加项目 ,然后将,弹出菜单的 文件 命令拖并释放它。 在 自定义 对话框选择该 命令 选项卡。 从 类别 列表框中选择 加载项 。 将 OpenFile 命令拖到 文件 菜单中拖出,vacated 由 打开 命令在空间中。 AddFileToProject 命令到 添加项目 项在 项目 菜单上拖它 vacated 文件 命令在空间中。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧