c ++程序的兼容性exe

时间:2016-11-10 20:43:51

标签: windows winapi visual-studio-2015

这些天我从事Windows编程工作。以下代码不能在另一台Windows计算机上运行,​​为什么?

#include <stdio.h>
#include <Windows.h>

int main() {
    TCHAR tcWindowsPath[MAX_PATH];
    TCHAR tcCurrentPath[MAX_PATH];

    GetWindowsDirectory(tcWindowsPath, MAX_PATH);
    GetSystemDirectory(tcCurrentPath, MAX_PATH);

    printf("%s \n", tcWindowsPath);
    printf("%s \n", tcCurrentPath);
    ////////////////////////////////////////
}

1 个答案:

答案 0 :(得分:0)

从项目设置中选择适当的运行时环境:

Configuration Propertes -> C/C++ -> Code Generation -> Runtime Library

将确定您是依赖于将项目静态链接到运行时还是通过DLL动态链接。如果您选择动态链接到运行时,那么这些DLL需要出现在您运行的系统上。

选择/ MT选项将静态链接您的可执行文件,允许您在不安装Visual C ++可再发行的运行时组件的情况下在另一个系统上运行。如果选择/ MD选项,则运行的系统将需要安装此选项。安装可再发行组件,例如最新的Visual C++ Redistributable 2015

Here在这方面写得非常不错。

更新:

除了以下有关静态与动态链接的评论之外......您可以使用以下命令设置目标平台:

Configuration Properties -> General -> Platform Toolset

我不确定您在运行此计算机的其他计算机,但如果是XP,则2015可以选择Visual Studio 2015 - Windows XP(v140_xp)。确保您的目标平台已被您的开发平台所覆盖。

This文章主要从.NET的角度来看这个答案,但信息也是相关的。

相关问题