2016-04-27 67 views
0

我已经在C++中构建了这个非常简单的基于winsock tcp的多用户聊天。C++ - 可执行文件的传输

我个人运行32位Windows 7版本,聊天工作正常,现在我想在我的局域网中的不同计算机之间进行测试,只是为了举例,我想运行我的client.exe文件另一台电脑,运行64位的Windows 7。

,所以我才这样做的几个问题:

  1. 首先假设两个计算运行x86架构它不应该是运输这些.exe文件,并在不同的计算机上运行他们的权利的问题吗?
  2. 现在我的第二个问题是缺少dll的,当试图在另一台计算机上执行我的client.exe文件时,弹出一个丢失的“MSVCR120.dll”DLL错误消息。这实际上是有道理的,因为计算机可能是架构兼容的,但可能有不同的dll。所以我的问题是,如果在我的C++ Client.exe文件源代码中,我将加载MSVCR120.dll并将其包含到我的Client.exe文件的文件夹中,是否可以解决我的问题?
+0

***缺少“MSVCR120.dll”dll错误消息弹出***您需要在这些计算机上安装Visual Studio 2013可再发行组件。 – drescherjm

+0

这与我希望做的完全相反,我希望那些实现我的程序的计算机不必安装visual studio 2013,我想为它们加载该dll .. @drescherjm – DrPrItay

+1

您不安装visual工作室2013.只是运行时间。答案指出你需要安装的文件。 – drescherjm

回答

2

你有两个选择:

  1. 要为创建安装包您包括VC++ 可再发行版。
  2. 用编译在as a static library中的VC++运行时编译你的exe文件。

在第二种情况下,您不需要安装包,只需将exe复制到目标机器上并从那里运行即可。

+0

谢谢,我该如何克服不同的处理器架构? @ c-smile – DrPrItay

+1

为每种体系结构编译不同的版本。尽管32位x86在x64上可以正常工作。 – drescherjm

+0

不是在谈论x86和x64,谈论risc和mips vs x86 @drescherjm – DrPrItay

0

如果你建立你的Visual Studio编程,你需要安装微软redistribuables:https://support.microsoft.com/en-us/kb/2977003

问候

+0

您能否更具体地回答我的问题?该程序在我的计算机上运行良好,我想在其他计算机上运行它,而无需在计算机上下载特殊工具,只需将dll从代码中加载到他们的计算机中即可@Eric T. – DrPrItay

+0

只需下载适用于Visual Studio 2013的可重新分配表并将其安装在需要它的机器上。 https://www.microsoft.com/en-us/download/details.aspx?id=40784既然你说的程序是32位的,你需要6.2 MB的vcredist_x86.exe文件。 – drescherjm

+0

您的程序依赖于要运行的DLL,例如并非所有的功能都在你的程序中。当您在开发PC上安装Visual Studio时,安装程​​序会安装所有必需的DLL以运行由Visual Studio生成的程序。 如果你想在另一台PC上运行你的程序,你将不得不至少安装运行时DLL。 大多数程序安装都包含它们在自己的安装程序中依赖的DLL。 –