0

嘿,所以我使用 pdCurses 库和微软操作系统工具制作了一个文本游戏,我想让它在任何计算机上运行。这是我的包括:

#include <iostream>
#include <time.h> // or "ctime"
#include <stdio.h> // for 
#include <cstdlib> 
#include <Windows.h> 
#include <conio.h>
#include<curses.h>
#include <algorithm>
#include <string>
#include <vector>
#include <sstream>
#include <ctime>

#include <myStopwatch.h> // for keeping times
#include <myMath.h>      // numb_digits() and digit_val();

myStopwath/Math.h 包括:

#include <stdio.h>
#include <math.h>
#include <tchar.h>

我需要像大多数可下载程序一样制作某种安装向导吗?我可以简单地将 dll、libs 和 headers 放在一个文件夹中吗?或者这样一个小程序有更简单的方法吗?谢谢!=)

顺便说一句:我想做的就是向某人展示我在另一台计算机上的游戏,而不是仅链接到这台计算机和 msVS++

4

2 回答 2

2

根据您的评论,我想您想要......让我们称之为“可部署性”而不是可移植性,这通常是指跨不同平台运行程序的能力。

查看您的包含,所有保存 PDCurses 的内容都应包含在标准 Windows 安装中(尽管如果您使用特别新版本的 VC++ 编译器,您可能无法让它在旧 Windows 上工作)。对于 PDCurses,如果它提供了它的 DLL,您可以将它与 .exe 并排放置,它应该可以工作。或者,查看静态链接,它将在可执行文件中嵌入库的副本。

100% 确定,您可以使用Dependency Walker准确检查您的程序所依赖的 DLL,与 Internet 交叉检查并捆绑您需要的任何内容。

于 2011-05-29T05:35:17.363 回答
0

使用 pdcurses 作为您的库是朝着正确方向迈出的一步,因为它是跨平台的。但是,Windows.hand conio.h(及其相关库)不是跨平台的。conio 的大部分功能可能都可以在 pdcurses 中找到。

您是否可以找到兼容的函数库Windows.h取决于您使用的函数以及您希望定位的平台。另一种选择是使用大量#ifdef语句来包含每个平台所需的内容。

这些头文件的其余部分是 C++ 或 C 标准库的一部分,因此它们应该是可移植的。

编辑: 感谢您澄清您的目标。我最初以为您想在多个平台上使用它。在您描述的情况下,您需要确保您拥有应用程序所需的所有 .dll,或者您已静态链接所有内容(另一个答案会告诉您更多关于这两者的信息)。如有必要,请在虚拟机上测试您的程序和 dll,或者在另一个机器上安装干净的 Windows。

于 2011-05-29T04:07:08.547 回答