【问题标题】:Visual Studio console debugging wrong fileVisual Studio 控制台调试错误文件
【发布时间】:2018-05-16 03:37:33
【问题描述】:

我创建了一个空项目并在项目中添加了两个 (.cpp) 项。请记住,我是 C++ Visual Studio 的初学者,所以我没有使用任何代码以某种方式连接这两个文件。

问题:调试器可以很好地调试我的第一个文件,但是当我打开第二个文件并通过单击“本地 Windows 调试器”开始运行时(当我在第二个文件中时单击),无论是否存在错误,它仍然会继续运行第一个文件。

当我点击“Local Windows Debugger”后查看调试窗口时,我看到了指向第一个文件的文件路径。

我试过了:完全关闭第一个文件,关闭visual studio并从我的文件夹路径打开我的第二个文件,关闭第一个文件中的断点并打开第二个文件.

我想知道:我怎样才能只运行第二个文件?我是否必须使用命令提示符将空项目中的两个项目分开?顺便说一下,我使用的是 Windows 10。

我搜索了我的问题,但我很难找到能提供解决方案的指南

【问题讨论】:

  • 您的文件夹/文件层次结构是什么,两个脚本的内容是什么? You should check here 如果您需要关于良好问答礼仪的指南。
  • 程序的开头总是main函数。每个项目的所有文件中只有一个main
  • @DeiDei jeez,我的两个文件都有一个主要功能。我应该使用 void 作为我的第二个文件的替代品吗?
  • @JamesWhyte 抱歉,我没有意识到我的代码内容具有两个主要功能会影响首先调试哪个文件。你知道对不同的文件启动器有很好的阅读,以及如何让项目中的特定文件首先进行调试吗?

标签: c++ visual-studio


【解决方案1】:

问题:

Dracep 无法调试他们拥有的两个文件之一。这是因为它们在两个文件中都有一个主函数定义,导致编辑器偏爱一个。

解决办法:

通过在您的应用程序中拥有第三个专用入口点(即拥有一个入口点,然后您可以包含其他文件),您可以决定在任何给定时间要调试哪个文件。

例如,有一个名为 main.cpp 的文件,然后使用 #include "filename.h" 包含其他两个文件。

您可以从那里包含该文件并通过调用该文件中的函数来进行代码检查,而不是拥有一个 main 并逐步执行它,从而导致长期的可伸缩性问题。

请参阅this question on separating your logic from your definitions,因为标记为正确的答案是您会发现的大多数 C++ 项目的标准。

这样,您可以执行以下操作:

#include "File1.h"
#include "File2.h"

int main(int argc, char** argv)
{
    File1Class file1Class;
    File2Class file2Class;
    //Do whatever tests you like with either.
}

【讨论】:

  • 通过遵循此方法并将您的逻辑与您的定义分开,您可以调试到您心中的内容而不会出现重大问题。学习起来有点痛苦,但是Headers和CPP文件正是你应该努力的;他们创造生活 EZ-PZ。 ;D
  • 谢谢!到目前为止,我只关注 C++ 的基本语法,但这表明我也需要了解基础。
猜你喜欢
  • 2017-11-23
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
相关资源
最近更新 更多