2016-11-17 27 views
0

我的问题非常普遍。在IDE中运行程序并通过.exe运行程序之间有重要区别吗?

我做了一个关于winsock2上的客户端 - 服务器应用程序的巨型巨型项目。

事实是:我的应用程序完美的作品,如果我打开在Visual Studio 2015年的项目,我从那里运行,但如果我通过双击他的.exe文件打开服务器上的文件我的客户端犯规显示任何内容。

我不会发布代码,因为它就像500行,但我问:我应该关心一些不同的东西,当我从.exe运行程序?我怎么能注意到如果出现问题?

P.s.我已经从Visual Studio中调试过了,当它从.exe启动时它不会引发任何异常/错误(它根本不显示任何内容)。 服务器是用C++编写的客户端程序。

更新:它的工作原理,如果我从bash运行它,我的意思是打开cmd.exe。它仍然无法通过双击.exe。一切都好吗?我可以说我有一个工作计划吗?

+2

'我怎么能注意到是否有问题?' - 使用类似log4net的东西来记录所有内容。在您的配置中有一个日志记录级别,用于决定要输出的内容。将日志级别设置为verbose,运行程序,读取日志。 – Equalsk

+0

*不显示任何内容*它应该做什么?无论如何,主要区别在于VS的环境与全球的环境不一样。 – stijn

+0

工作目录不同,这意味着文件和目录的相对路径不同。您可能在IDE中设置了一些环境变量或命令行参数,这些参数在双击可执行文件时未设置。您需要确保您正确地处理错误,并且您有默认值和可用的后备值。另外,首先尝试从控制台窗口运行,以确保它在那里工作。从不同的目录运行。测试一下。并有大量的日志记录。 –

回答

0

这很难孤立地回答; 可能存在差异,尤其是与配置路径有关的差异,以及某些运行时组件(特别是winforms具有细微的细微差别)。然而!它听起来像这样更关系到你的应用程序。对于未处理的错误,您通常会期望操作系统报告的非常负载崩溃。但是如果你的代码默默吞咽错误,那不会发生。所以,要检查的东西:

  • 是exe默默运行?检查进程列表
  • 你有很大的catch块未报告的实际问题
  • 有错误日志什么?
  • 你是否在做任何与标准输入有关的具体行为,可能会有不同的表现?

但最关键的是添加日志记录,也许在编译或命令行开关后面,告诉你它有多远。

相关问题