c++ - 我如何将我的程序变成我可以安装的东西?

标签 c++ visual-c++

我如何将我的 VC++ 2008 程序变成我可以在其他计算机上运行的程序。我已经尝试使用它在调试中生成的 .exe,但它会说我缺少一些文件并列出我所有的 .cpp 文件名和 .h 文件(如果我在其他计算机上使用它)。我想要一些东西,这样我就可以加密我的文件,因为其中一个是关于加密密码/其他东西的,所以我不能让别人直接打开我的文件。我也非常想以某种方式让他们接受条款和条件,这样他们在丢失东西时就不能起诉我,那会非常非常好。 ^^

我只有从他们的网站上获得的 Microsoft virtual c++ 2008 Express Edition。

另外,如果我在 Windows 7 上制作某些东西,它会在 xp 还是 vista 中运行?

最佳答案

您通常不能也几乎永远不会应该将调试版本分发到客户端机器。至少三个原因。

  1. 客户端计算机将没有依赖库的调试版本,例如 VC 运行时 (msvcrtd.dll),因此它们将无法运行您的应用。
  2. 在调试中编译时,您的代码在很多方面都将在未优化的情况下运行。一方面,当您在调试中编译时,您不会让优化编译器进行优化,因此它会运行得更慢和/或更胖。另一方面,有诸如 operator new 之类的调试版本,它分配的比你要求的多,用于运行时完整性检查等。所以你的程序运行得更胖&再次慢下来。
  3. 在调试中编译时,对代码进行逆向工程会更容易。

更新:

关于 Win7 编译的应用程序是否可以在 XP/Vista 上运行的问题,只要您不使用任何 Win7 功能,答案是"is"。

关于c++ - 我如何将我的程序变成我可以安装的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202512/

相关文章:

c++ - 如何在 C++ 中将文件保存到桌面?

c++ - 如何在 C++ 中使用 openssl 加密库 header ?

c++ - Char 到 int8_t 的转换给出了意想不到的结果?

python - C++ 代码中递减运算符后的等号

c++ - 类模板的静态数据成员

c++ - 回文和镜像字符串

c++ - 使用动态分配的内存(指针)

c++ - 编译器与引用文献的差异

c++ - 不使用 dynamic_cast<...>() 如何知 Prop 体的对象类型

c++ - 如何包装 "expanded variadic template parameters"?