Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在单个VisualStudio2010项目中执行多个主文件?_C++_Visual Studio 2010 - Fatal编程技术网

C++ 如何在单个VisualStudio2010项目中执行多个主文件?

C++ 如何在单个VisualStudio2010项目中执行多个主文件?,c++,visual-studio-2010,C++,Visual Studio 2010,目前,我正试图在VisualStudio2010中使用协议缓冲区制作客户机-服务器原型,我现在正在做的是,我必须在同一个解决方案中创建两个不同的项目(一个用于服务器文件,另一个用于客户机文件),它以这种方式完美地工作 我的问题是,如果我将服务器和客户端cpp文件放在一个项目中,它会给出错误,因为有两个主管道(服务器中的主管道和客户端文件中的主管道)。你们中有没有人想过将两个文件都放在一个项目中执行,而不是使用Visual Studio在同一个解决方案中创建两个单独的项目?您应该创建多个项目 然后

目前,我正试图在VisualStudio2010中使用协议缓冲区制作客户机-服务器原型,我现在正在做的是,我必须在同一个解决方案中创建两个不同的项目(一个用于服务器文件,另一个用于客户机文件),它以这种方式完美地工作


我的问题是,如果我将服务器和客户端cpp文件放在一个项目中,它会给出错误,因为有两个主管道(服务器中的主管道和客户端文件中的主管道)。你们中有没有人想过将两个文件都放在一个项目中执行,而不是使用Visual Studio在同一个解决方案中创建两个单独的项目?

您应该创建多个项目


然后,您可以右键单击解决方案,打开属性页,并设置多个启动项目。

您应该创建多个项目



然后,您可以右键单击解决方案,打开属性页,并设置多个启动项目。

您可以在另一个
main
中将它们组合为
clienMain
serverMain
,这是真正的主函数,您可以在其中等待输入以执行函数。(或者其中一个应该是
serverMain

您可以将它们作为
clienMain
serverMain
组合到另一个
main
中,这是真正的主函数,您可以在其中等待输入以执行函数。(或者应该是
serverMain

我认为您必须创建多个项目。这是Visual Studio的一个基本弱点,尽管在您的案例中,我可能会使用三个项目:一个创建包含所有协议处理代码的静态库,另一个分别用于服务器和客户端,两者都链接到(取决于)带有公共代码的库。

我认为您必须创建多个项目。这是Visual Studio的一个基本弱点,尽管在您的案例中,我可能会使用三个项目:一个创建包含所有协议处理代码的静态库,另一个分别用于服务器和客户端,两者都链接到(取决于)使用公共代码的库。

比您要简单,但正如我所说的,设置为多个启动项目,通过将action设置为->start更容易,我可以这样做,但如果您能解释一下,是否有机会(在任何情况下,如果只有那时才可行)在单个项目中保留多个主文件?@Alm:您可以制作一个
main()
调用多个其他函数的函数。您可能需要使用线程。注意共享全局状态。比你更重要。但正如我说的,设置为多个启动项目,通过将action设置为->start更容易,我可以做到这一点,但如果你能解释一下,是否有机会(在任何情况下,如果只有那时才可行)在单个项目中保留多个主文件?@Alm:你可以制作一个
main()
调用多个其他函数的函数。您可能需要使用线程。当心共享全局状态。现在为什么要这样做呢?我觉得它更方便,并且可以看到事情是如何以其他方式工作的。我觉得这是“让客户机和服务器代码彻底交织在一起的好方法,但没问题。”。您可以考虑重命名它们,然后使用入口点进行链接。但不确定它在VS的项目配置中的位置。请参见此处不要尝试这样做-这正是为什么解决方案/项目层次结构首先存在于Visual Studio中,以便您可以将相关但独立的项目组合在一起。如果两个项目都有
main
功能,那么它们将产生单独的输出,并且应该在单独的项目中。如果您想在项目之间共享代码,那么这不是一个问题-使用引用和include path.Hmm。。谢谢,基于所有的回答和评论。我明白了这一点:)现在你为什么要这么做?我觉得这样更方便,看看事情是如何运作的。我觉得这是“让你的客户端和服务器代码彻底交织在一起的好方法,但没问题。”。您可以考虑重命名它们,然后使用入口点进行链接。但不确定它在VS的项目配置中的位置。请参见此处不要尝试这样做-这正是为什么解决方案/项目层次结构首先存在于Visual Studio中,以便您可以将相关但独立的项目组合在一起。如果两个项目都有
main
功能,那么它们将产生单独的输出,并且应该在单独的项目中。如果您想在项目之间共享代码,那么这不是一个问题-使用引用和include path.Hmm。。谢谢,基于所有的回答和评论。我明白了:)你能再多写一点吗?或者如果你有一个示例代码,那就太棒了!谢谢,我想说的是,您可以在服务器项目中添加客户机,并在某个时间发送请求(请参阅),然后模拟这个过程。或者你看到了吗?你能再多写一点吗?或者如果你有一个示例代码,那就太棒了!谢谢,我想说的是,您可以在服务器项目中添加客户机,并在某个时间发送请求(请参阅),然后模拟这个过程。或者你看到了吗?我不一定会认为这是一个弱点——一个项目意味着一个输出(.LIB,.DLL,.exe等),一个解决方案是用来表示相关输出的集合。拥有
main
函数符合“单独输出”的条件,因此如果两组代码都包含
main
,那么将它们混合在一起就没有什么意义了。在我的大多数解决方案中,我都有您建议的结构的扩展版本—静态库中的通用后端代码,静态库中的服务器和客户端特定后端代码,然后是链接到这些结构的GUI(带有
main
)。@JBentley在一些特殊情况下,这是一个明显的弱点。在他的情况下,正如我所说,我不认为是这样的:他有两个可导出项(output),因此应该有两个独立的项目。但是我