当前位置:编程学习 > VC++ >>

看一个别人编写的较大型的VC程序,应该遵循的步骤即看的顺序是什么?先看头文件还是从程序的主要类入手?

如题,求高手指教!
答案:先看看文档,了解一下系统的架构,如果没有文档那就比较麻烦了,推荐使用doxygen来分析源码结构创建一个描述架构的帮助文档,如果代码没有什么注释的话,这个东西也就只能大致分析出调用,派生的结构,但有总比没有强。类似的软件还有UML建模的软件,比如EA,基本都能导入代码分析并绘制UML,doxygen我比较常用罢了。
大概结构Ok了,根据自己的需求在关注要编辑修改的模块,这个时候主要看看接口。
最后如果要修改了,再看实现。
老城改造是比较郁闷的活儿,需要耐心。
此外如果要做修改,最好先写一些CPPUNIT单元测试,以免改出问题来。
其他:其实有很多的解决办法呀,如下:(一般你看是具体什么提示然后,使用相应的提示到G.cn或百度找答案即可.....),下面的方法可参考使用...
1).在C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86   \Microsoft.VC80.DebugCRT 下找到了下列文件:
        msvcm80d.dll
        msvcp80d.dll
        msvcr80d.dll
        Microsoft.VC80.DebugCRT.manifest

   把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

    其他release版,MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

  2).修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不    再需要VC的dll了。
  
  3). 工程-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
     这样生成的exe文件应该就可以在其他机器上跑了。

  4).在vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序易做图安装

  5).修改项目属性的编译开关 
      工程-->属性-->配置属性-->C/C++-->代码生成-->运行时库 修改为Multi-threaded(/MT)
    
   修改了Runtime类型以后,需要将MFC的编译类型也改成静态库
       工程-->属性-->配置属性-->常规-->MFC的使用  修改为:在静态库中使用MFC; 
          
   一部分情况下在这步就能解决问题,另外一部分情况会遇见如下情况,编译器报错:储如:"再次定义"
   解决方法如下:
   工程-->属性-->配置属性-->链接器-->输入-->附加依赖项 中加入相应的*.lib
        (如:加入nafxcw.lib,libcpmt.lib )这一般根据你程序所报的错进行修改;
   工程-->属性-->配置属性-->链接器-->输入-->特定的库
         (如:加入nafxcw.lib,libcpmt.lib )
     
   这样链接程序就不会先按照默认顺序来连接这两个库文件,而是在最后在加入对他们的引用. 

下面是一张可能发生冲突的列表 若要使用此运行时库 请忽略这些库 
  
单线程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
多线程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
使用 DLL 的多线程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
调试单线程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib   
调试多线程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib   
使用 DLL 的调试多线程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib

上一个:VC中怎么将编辑框中的输入数字(包括正负),转化为整形数组(也包含正负)输出呢?
下一个:VC6.0开发BREW,编译完后提示The following environment variables were not found $(BREWDIR)怎么解决

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,