Сайт | Лаборатория | Форум | Wikiservia



In english

harpywar.com

Главная

Вики

Форум

Лаборатория

 Статьи
   Игры
   Настройка серверов
     PvPGN
     D2GS
     NFS: U
     Apache
     ArcEmu

   Кодинг
     .NET
     PHP

   Разное

 Проекты
   QDoom
   IRC Search
   vbreality [web]
   UTech p2p Realm [web]
   PvPGN система статистики
   Diablo 2 Launcher
   WoW Simple Launcher

 Моё
   Творчество
   Оборудование

Поиск по сайту


Хостинг и VDS, скидка при переходе
 
PvPGN (Player vs Player Game Network)
Иконки Warcraft 3 (w3xp_userselected_icon)
Создание иконок Warcraft 3
PvPGN c ладдером в Starcraft [x]
Группы консольных команд (command_groups.conf) [x]
Battle.net утилиты
Создание баннеров (ad.conf)
address_translation.conf
Иконки Starcraft [x]
Как скомпилировать исходники PvPGN 1.8.5 под Windows
Headers и библиотеки для компиляции PvPGN
Как скомпилировать исходники PvPGN 1.99 из SVN, под Windows
PvPGN и MSSQL (через ODBC)
Как установить PvPGN 1.8.5 под Linux
Установка PvPGN 1.99 на Linux
Среда для эффективной разработки PvPGN
Как скомпилировать исходники PvPGN 1.8.5 под WindowsСоздано: 20.04.2007
Изменено: 17.10.2011
Автор: HarpyWar

Здесь рассматривается вариант компиляции PvPGN 1.8.5 с помощью Visual Studio 2005/2008/2010 под Windows. На текущий момент она является последней стабильной версией PvPGN.
Компиляция PvPGN 1.99 описана в другой статье.

Для начала надо скачать исходный код PvPGN 1.8.5, распаковать архив и открыть проект Win32-Projects\PvPGN.sln или PvPGN_Console.sln - в зависимости от того нужна GUI версия или консольная.

Если надо скомпилировать с поддержкой MySQL, необходимо скопировать заголовочные файлы MySQL (.h) в папку src\mysql\, а библиотеку (libmysql.lib) в папку src\win32\. Оставшийся libmysql.dll потребуется для запуска PvPGNConsole.exe.


Всё, описанное далее можно не выполнять, а скачать прикрепленный к статье архив с исходниками PvPGN 1.8.5, готовыми для компиляции. Просто открываете .sln проект и компилируете.
Там исправлены все ошибки и можно только заменить MySQL файлы на другую версию.



В обозревателе решений (View > Other Windows > Solution Explorer) добавить вручную следующие файлы в папки common и bnetd (в дереве проекта PvPGNConsole\Source Files\):

src\common\xstr.c
src\bnetd\sql_common.c
src\bnetd\storage_sql2.c

PvPN Solution Explorer


Так же для этого необходимо, чтобы в Project -> PvPGNConsole properties... в закладке Preprocessor был добавлен флаг WITH_SQL_MYSQL.



Далее в строке меню Build -> Configuration manager... напротив PvPGNConsole в раскрывающемся списке вместо Debug поставить Release. Иначе в конечный файл запишется Debug код, он будет в несколько раз больше обычного по размерам и чуть медленнее работать.



Закрываем окошко и вот уже последний шаг Build -> Build PvPGNConsole.

Если все прошло успешно, появится долгожданный bin\PvPGNConsole.exe


Распространенные ошибки при компиляции

Ошибка #1
    fatal error RC1015: cannot open include file `afxres.h`.

    Скорее всего, используется Visual C++ Express, поэтому необходимо добавить Include файлы в проект PvPGN, как описано этой статье (шаг 6).

Ошибка #2
    error LNK2001: unresolved external symbol _snprintf

    Для исправления этой ошибки достаточно во всем проекте изменить "snprintf" на "_snprintf"
    Делается это через меню Edit > Quick Replace, в выпадающем списке "Look in" выбрать "Entire Solution". В опциях поставить флажки "Match case", "Match whole word". Ещё надо переименовать файл compat\snprintf.h -> _snprintf.h.

    find and replace

Ошибка #3
    error C2275: `my_bool` : illegal use of this type as an expression
    error C2146: syntax error : missing `;` before identifier `my_true`
    error C2065: `my_true` : undeclared identifier
    error C2065: `my_true` : undeclared identifier

    В файле src\bnetd\sql_mysql.c нужно перенести строку "my_bool my_true = (my_bool)1;" в начало функции sql_mysql_init() (см. подробнее).

    Должно получиться так:

    ...
    static int sql_mysql_init(const char *host, const char *port, const char *socket, const char *name, const char *user, const char *pass)
    {
    my_bool my_true = (my_bool)1;

    if (name == NULL || user == NULL) {
    eventlog(eventlog_level_error, __FUNCTION__, "got NULL parameter");
    return -1;
    }
    ...




[AVP] Присоединенные файлы (вирусов нет):

 xpeh
15 Июнь 2007, 07:48 | #42 
А как скомпилить под VC6?

 xpeh
15 Июнь 2007, 07:50 | #43 
Классный сайт кстати, сам такое сделать хотел.

 HarpyWar
15 Июнь 2007, 12:36 | #49 
Можно с помощью borland c++, но не vc6

 xpeh
15 Июнь 2007, 13:05 | #50 
А почему не VC6?
Слышал мнение, что bc suxxxxxx

 xpeh
15 Июнь 2007, 13:07 | #51 
В общем сам в свое время немало потрахался с пвпгн, можно работать вместе :)

Можешь проверить прикол
/ipban a 1.2.3.4/5
/ipban del 1.2.3.4

 Hommit
20 Август 2007, 05:41 | #64 
handle_irc.obj : error LNK2001: unresolved external symbol _snprintf
..||bin/PvPGN.exe : fatal error LNK1120: 1 unresolved externals
vs2003
что мне сделать

 Goliath
09 Февраль 2008, 06:16 | #103 
to Hommit, если не хочешь изворачиваться с макросами, просто замени в коде все snprintf на _snprintf.
P.S: Я дату видел и понимаю, что возможно уже не актуально, но как по мне плоха, когда есть вопросы и нет ответов :)

 Rakshas
04 Сентябрь 2008, 10:02 | #152 
При компиляции на VC++ 2008 вылазит фат. ошибка, нет файла afxres.h

тому кто скинет мне этот файл буду по гроб жизни и всё такое :-)

 qvip
23 Ноябрь 2008, 16:41 | #160 
connector.obj error =\
А можно выложить заголовки mysql 5 ?

 Pvpgn
08 Май 2012, 17:34 | #337 
Помогите как в Pvpgn 1.8.5 сделать статистику игроков командой /stats и чтоб показывало
Ladder game (5x5): [D]1000pts, W/L 0%, leave count: 0(0%) a????


Есть вопросы по настройке игровых серверов? Добро пожаловать на форум!

Имя: Проверка: = 9536


© 2006—2017, HarpyWar

Любое копирование информации с этого сайта - только со ссылкой на источник.
Это в одинаковой мере распространяется на любую авторскую информацию в интернете.