无法在任何其他计算机上运行Windows应用

时间:2014-05-08 06:31:46

标签: c++ windows

我最近为Windows应用程序编写了一个相当简单的代码,一个2048游戏,包括一些基础知识,如图标,背景和东西,4个不同方向的按钮和4x4静态窗口数组输出。 “守则”并非“非常好”。但是因为我还在学习,所以我发现它已经足够了(至少在我的电脑上)。我使用默认的VS13配置,在安装它之后没有改变任何东西,代码是用c ++编写的。 代码可以在这里找到:https://www.dropbox.com/sh/15y1daq2h3jm8p7/AADp0m1EfUJo3W2z315Zgd0Wa

现在有什么问题,程序会编译0警告或错误,当我通过调试或从我的电脑上的桌面运行它时,就像我预期的那样工作,但是当我将它上传到dropbox并想要启动时在笔记本电脑上说然后它不起作用。 此外,如果我尝试在Codeblocks中编译完全相同的代码,我就无法做出警告,许多函数都没有在范围内声明。 可以解释为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

您面临的基本问题是您正在尝试在Visual Studio环境之外编译已编写的VCPP代码。

使用Visual Studio调试代码时,将在编译期间注入所有必需的文件/依赖项。

我建议使用Visual Studio打包代码,然后尝试在笔记本电脑上运行exe。

确保在目标计算机上安装了正确版本的VC ++运行时环境。 (您也可以选择在打包的设置中包含设置。)


从这里开始:https://stackoverflow.com/a/20890610/1477051

  

正如您所见,here,MSVCP DLL就是平台   C ++标准库的实现。简而言之,这意味着什么   你不能在不需要"东西的情况下分发你的应用程序。   这些库提供。所有编译器无论平台如何   需要某种标准库的实现。   通常,这是以库的形式分发的。

     

但是,您可以分发您的应用程序,以便"东西"是   直接内置到您的程序中,而不是在一个   单独的DLL。为此,您必须静态链接您的   申请标准图书馆。

     

有几种方法可以实现这一目标。一种方式是项目   设置。在"配置属性" > " C / C ++代码生成" >   "运行时库",选择"多线程(/ MT)"而不是   " Mutithreaded(静态)"。

     

顺便说一下," D" in" MSVCP120D.dll"你上面提到的意思   "调试和#34;这意味着您正在尝试分发调试版本   你的计划。你应该(几乎)永远不要这样做。分发版本   而是建立。