zoukankan      html  css  js  c++  java
  • MSCE C++官网一步步学习搬运5

    第五章、创建VS项目并调试应用程序

    我们至今都是一个个单独创建项目文件的,并没有将这些文件关联到一个VisualStudio的项目中,这样不能利用VS强大的语法智能感知功能。下面就通过手工方式创建一个空的VS项目,然后将这些文件分门别类地添加到项目中。

    1、在VS中选菜单File > New > Project创建一个新的VC++空项目。如下图所示:

    注意上图中红框的几处选择,在Location栏是我的HelloWorld文件夹的位置,Create directory for solution一定不要勾选,因为我们这个文件夹已经存在了。我使用的VS是英文版的,请大家按照图示位置在自己的中文版VS中找到相应的项。

    2、将已有的几个文件HelloWorld.cpp、HelloWorld.r和HelloWorldCmd.r、HelloWorld.mke分别添加到源文件、资源文件和整个项目下。添加方法当然就是在VS项目中右击相应文件夹,然后选择Add > Existing Item…实现的。最终的效果如下:

    今后想编辑哪个文件了,直接在VS中双击该文件即可编辑了。当然,在回到黑窗口生成项目前请记得按Ctrl+S键保存整个项目。

    创建了VS项目后会在HelloWorld文件夹下多出几个文件来,大致介绍如下:

    • sln——VS解决方案文件。一个解决方案中可含有多个项目
    • vcxproj——VC++项目文件
    • vcxproj.filters——VC++项目的信息过滤文件
    • VC.db——为智能感知服务的SQLite数据库文件。该文件很大,给别人传送源代码前可删除该文件。

     3、右击HelloWorld项目,在弹出的菜单中选择Properties打开项目属性对话框,按如下图示给项目添加VC++包含文件的路径。

         【注意】:这一步是添加新路径而不是替换原来的$(IncludePath)。最终的设置结果应该是:C:Program FilesBentleyMicroStationCONNECTSDKinclude; $(IncludePath)

    4、经过这个添加,HelloWorld项目可以支持VS的智能感知了。如下图所示。这将大大增加我们的编程效率。

    5、下面介绍一下如何用VS对项目进行调试。回到黑窗口键入bmake -a -ddebug执行带调试信息的重生成。其中的-a表示all,类似于VS中执行Rebuild,-d表示define,后面跟不带空格的debug。这样生成的pdb文件中就会含有调试信息了。

    6、在VS中打开cpp文件,找到MdlMain函数,在其中的g_1mu = pInfo->GetUorPerStorage();这一行设置断点。

    7、在VS中选菜单Debug > Attach to Process…打开连接进程对话框,然后按如下图所示在有效进程中找到microstation.exe这个进程并点击Attach按钮连接。注意,如果MSCE还未启动的话,将找不到这个microstation.exe进程,此时可以先启动MSCE。另外一点就是Attach to必须设置为Native code(本机代码),这是调试C++的方式。

     8、切换到MSCE中,键入MDL LOAD HelloWorld并回车,此时应该就能自动激活VS并停留在断点处。

    9、将光标移动到pInfo上应该就能看到它的值了。详细的VS调试技术超出了本文的范畴,对VS调试技术还不熟悉的读者可查看微软的MSDN文档或有关书籍来学习。

  • 相关阅读:
    Linux 的伪终端的基本原理 及其在远程登录(SSH,telnet等)中的应用
    入住cnblogs第一篇随笔 Hello, world!
    清除maven加载失败的jar包记录
    解决Jackson2反序列化LocalDateTime报错
    springboot+dubbo基于zookeeper快速搭建一个demo
    解决bug:sprongboot2整合shiro,swagger2页面样式加载不出来问题
    Tomcat 8启动速度慢原因1: At least one JAR was scanned for TLDs yet contained no TLDs
    解决exlicpe以debug模式启动或运行速度非常慢的问题
    MAVEN打包报错:com.sun.net.ssl.internal.ssl;sun.misc.BASE64Decoder;程序包 javax.crypto不存在处理办法
    SQL根据B表内容修改A表内容,查询表中重复记录,删除掉重复项只保留一条
  • 原文地址:https://www.cnblogs.com/JolinZH/p/12820455.html
Copyright © 2011-2022 走看看