这些天我从事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);
////////////////////////////////////////
}
答案 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的角度来看这个答案,但信息也是相关的。