Как сделать консольную текстовую игру c ++, которая использует pdCurses, переносимую - PullRequest
0 голосов
/ 29 мая 2011

Эй, я сделал текстовую игру, используя библиотеку pdCurses и инструменты операционной системы Microsoft, и хотел бы, чтобы она работала на любом компьютере. Вот мои включает:

#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, библиотеки и заголовки? или есть намного более простой способ для такой маленькой программы? Спасибо! =)

Кстати: все, что я хочу, это показать кому-то мою игру с другого компьютера, а не привязываться только к этому компьютеру и msVS ++

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

Исходя из вашего комментария, я полагаю, что вы хотите ... давайте назовем это "развертываемостью", а не переносимостью, которая обычно означает возможность запуска программы на разных платформах.

Рассматривая ваши включения, всесохраняет PDCurses должны быть включены в стандартную установку Windows (хотя, если вы используете особенно новую версию компилятора VC ++, вы можете не заставить его работать на старых Windows).Для PDCurses, если он предоставляет свою DLL, вы можете поместить его рядом с .exe, и он должен работать.В качестве альтернативы, посмотрите на статическое связывание, при котором копия библиотеки будет встроена в ваш исполняемый файл.

Чтобы быть на 100% уверенным, вы можете использовать Dependency Walker , чтобы точно определить, какие библиотеки DLL зависят от вашей программы.включите, сверяйте с интернетом и связывайте все, что вам нужно.

0 голосов
/ 29 мая 2011

Использование pdcurses в качестве вашей библиотеки - это шаг в правильном направлении, потому что он кроссплатформенный.Однако Windows.h и conio.h (и связанные с ними библиотеки) не являются кроссплатформенными.Большая часть функциональности conio, вероятно, может быть найдена в pdcurses.

Возможность найти совместимые библиотеки для функций в Windows.h будет зависеть от того, какие функции вы используете и на какую платформу вы рассчитываете работать.Другой альтернативой является использование множества операторов #ifdef для включения того, что вам нужно для каждой платформы.

Остальные заголовки являются частью стандартных библиотек C ++ или C, поэтому они должны быть переносимыми.

Редактировать: Спасибо за разъяснение вашей цели.Сначала я думал, что вы хотите использовать его на нескольких платформах.В случае, который вы описываете, вы должны убедиться, что у вас есть все необходимые .dll с приложением, или что вы все связали статически (другой ответ расскажет вам немного больше об обоих из них).При необходимости протестируйте свою программу и установите ее на виртуальной машине или установите Windows на другом компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...