Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
.net 用VC编程++;在窗外跑_.net_C++_Windows_Visual C++ - Fatal编程技术网

.net 用VC编程++;在窗外跑

.net 用VC编程++;在窗外跑,.net,c++,windows,visual-c++,.net,C++,Windows,Visual C++,关于在VC++2008中编程,我有以下问题 如果我在Windows7中制作一个Win32控制台程序,它会在7以下的任何窗口中工作吗 我能独立于.NET框架的C++应用程序吗?如果是,请简要说明如何做 如果VC++中的应用程序可以运行.exe文件,我可以让它在其他操作系统(如Linux)上运行吗?如果是,请简要说明如何做 我正在学习VC++,只是想澄清一些疑问。 希望他们能很快被清除 提前感谢,谢谢 干杯1>取决于:如果不使用任何Windows 7特定的API,在Windows Vista上运行该

关于在VC++2008中编程,我有以下问题

  • 如果我在Windows7中制作一个Win32控制台程序,它会在7以下的任何窗口中工作吗
  • 我能独立于.NET框架的C++应用程序吗?如果是,请简要说明如何做
  • 如果VC++中的应用程序可以运行.exe文件,我可以让它在其他操作系统(如Linux)上运行吗?如果是,请简要说明如何做
  • 我正在学习VC++,只是想澄清一些疑问。 希望他们能很快被清除

    提前感谢,谢谢
    干杯

    1>取决于:如果不使用任何Windows 7特定的API,在Windows Vista上运行该程序不会有问题;如果您不使用任何Vista特定的API,那么在XP上运行它就不会有问题,等等

    2> 当然,您只需要创建一个纯本机项目,而不是一个C++/CLI项目


    3> 你需要一个仿真器,比如“wine”,在linux下运行windows可执行文件取决于:如果不使用任何windows 7特定的API,你在windows Vista上运行该程序不会有问题;如果您不使用任何Vista特定的API,那么在XP上运行它就不会有问题,等等

    2> 当然,您只需要创建一个纯本机项目,而不是一个C++/CLI项目


    3 >在Linux下,Windows需要一个仿真器,比如“葡萄酒”来运行Windows可执行文件< P > 3:如果你编写了可移植的C++控制台应用程序(不使用Windows特定的函数),你可以简单地使用一些编译器来重新编译其他平台,以平台为目标。

    < P> 3:如果你编写了可移植的C++控制台应用程序(不使用特定于Windows的函数),您只需使用针对该平台的编译器为其他平台重新编译即可。

    大多数情况下……但请记住:

    如果要在不使用.NET framework的情况下编程,请在创建新项目时选择任何“Visual C++”项目,但不要使用任何CLR项目

    本地C++应用程序(控制台或窗口)如果你不链接到新的操作系统中的函数调用或API,那么它将运行在旧的Windows操作系统上。例如,不要调用和期望应用程序在WindowsXP上工作。但是,在WIN7上运行的最新版本Visual C++上,可以很容易地得到控制台C/C++应用程序编译。在XP上运行的前任

    我相信您可以通过使用_WINNT_WIN32 define来防止意外使用新API

    Windows上的本地C++应用程序的另一个考虑是默认情况下,VisualC++将选择动态链接来包括C运行时(例如MVCRT100.DLL)。。这些dll在您将EXE复制到的计算机上并不总是可用。当您在其他计算机上运行EXE时,可能会出现无法找到MSVCRT*.dll的应用程序错误。如果出现这种情况,您可以在项目设置中切换到静态链接(然后直接将EXE复制到其他计算机上),或在要在其上运行EXE的其他计算机上预安装适当的MSVCRT。Visual Studio将MSVCRT预安装为其自身安装的一部分。Visual Studio附带MSI文件,用于安装MSVCRT,您可以重新分发。EXE的调试版本可能需要手动将MSVCRT DLL的调试版本复制到目标计算机选择调试版本的静态链接,或者只使用零售MSVCRT链接应用程序的调试版本

    如果你选择使用MFC框架进行UI开发,同样的考虑也适用于MFC及其关联的DLL(但你说的是控制台应用程序,所以你不必担心这一点)


    如果没有黑客攻击,您的EXE将无法在Linux上运行。(重新编译更容易)。但如果您在.NET中编写控制台应用程序,则EXE在Linux上运行Mono的可能性很大。

    大多数情况下……但请记住:

    如果要在不使用.NET framework的情况下编程,请在创建新项目时选择任何“Visual C++”项目,但不要使用任何CLR项目

    本地C++应用程序(控制台或窗口)如果你不链接到新的操作系统中的函数调用或API,那么它将运行在旧的Windows操作系统上。例如,不要调用和期望应用程序在WindowsXP上工作。但是,在WIN7上运行的最新版本Visual C++上,可以很容易地得到控制台C/C++应用程序编译。在XP上运行的前任

    我相信您可以通过使用_WINNT_WIN32 define来防止意外使用新API

    Windows上的本地C++应用程序的另一个考虑是默认情况下,VisualC++将选择动态链接来包括C运行时(例如MVCRT100.DLL)。。这些dll在您将EXE复制到的计算机上并不总是可用。当您在其他计算机上运行EXE时,可能会出现无法找到MSVCRT*.dll的应用程序错误。如果出现这种情况,您可以在项目设置中切换到静态链接(然后直接将EXE复制到其他计算机上),或在要在其上运行EXE的其他计算机上预安装适当的MSVCRT。Visual Studio将MSVCRT预安装为其自身安装的一部分。Visual Studio附带MSI文件,用于安装MSVCRT,您可以重新分发。EXE的调试版本可能需要手动将MSVCRT DLL的调试版本复制到目标计算机选择调试版本的静态链接,或者只使用零售MSVCRT链接应用程序的调试版本

    如果你选择使用MFC框架进行UI开发,同样的考虑也适用于MFC及其关联的DLL(但你说的是控制台应用程序,所以你不必担心这一点)


    如果没有一些黑客攻击,你的EXE将无法在Linux上运行。(重新编译更容易)。但是如果你在.NET中编程控制台应用程序,EXE很有可能在Linux上运行Mono