Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Исправить ошибку LNK2019 в готовом рабочем проекте C++ VS 2013

closed without completion


Кратко:

Делаю простые моды для игр.

Есть открытый исходный код клиента одной игры, который "патчит" её (Modern Warfare 2). В клиенте есть .cpp код предназначенный для загрузки ассетов из другой игры (например, моделей и текстур) на этом же движке, но с небольшой разницей в структуре. Этот клиент незначительно устарел, так что мне пришлось обновить адреса функций в IDA Pro.


Однако сложность в том, что необходим .dll файл для инъекции (inject) в запущенный процесс игры. Был найден исходный код очень простого чита, основа которого взята для проекта. Работа проверена - при инъекции начинается "мануальная" загрузка нужного ассета (введя его название изначально в исходном коде), но это только со стандартными ассетами, а нужны из другой игры, где немного другая структура. И чтобы игра умела читать, нужен код, о котором писал в самом начале. И когда я вставляю его в проект, то проект не компилируется из-за нескольких одинаковых ошибок: (хотя я в этом самом коде ничего не менял, а тот слегка устаревший клиент игры с этим же кодом, откуда его и взял, компилируется без ошибок)


"Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall ..." (список ошибок: https://pastebin.com/awRkpphL)


В принципе, сам код рабочий и я его не изменял, вот только мне, как почти ничего не знающему о С++, кажется, что где-то просто напутал #include или что-то вроде этого...


Проект:

ffloader.h: https://pastebin.com/bzQ011VA

ffloader.cpp: https://pastebin.com/24ERdvRx

PatchMW2FifthInfinity.cpp: https://pastebin.com/mk8iptU0

Отсюда взят код для загрузки сторонних ассетов: https://github.com/FreeTheTech101/iw4lan/blob/master/steam_api/PatchMW2FifthInfinity.cpp


Это проект некоммерческий (как и любые моды для игр), но чисто просто чтобы узнать что я сделал не так, видимо, придется заплатить.


Связаться со мной в Skype: chamu6or


P.S. И мой проект, и исходный на Github на Visual Studio 2013 (C++)



  1. 7 days300 ₽
    Alexandr Shakirov
     215  verified   1   0

    Указал неделю это время с большим запасом в силу непредсказуемости моего графика

    Russia Russia | 19 July at 00:30 |
  • Anton Kravtsov
    Complain | 17 July at 21:11 |

    То, что в ошибке вместо троеточия, имеет значение - зря отрезали...

  • Ernest Bagretsov — project author
    Complain | 17 July at 21:36 |

    Добавил полный список возникающих ошибок 😔

    https://pastebin.com/awRkpphL

    По всей видимости, я что-то очень тупое пропустил, потому что код в исходном проекте, откуда он взят, компилируется отлично, а у меня никакого опыта в С++..

  • Ernest Bagretsov — project author
    Complain | 17 July at 21:37 |

    Даже готовое скопировать нормально не смог)

  • Anton Kravtsov
    Complain | 17 July at 21:37 |

    Ошибка вида "error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall CallHook::initialize(unsigned long,void *)" ([email protected]@QAEXKPAX QAEXKPAX@Z)" говорит о том, что Вы или нужную static library (.lib) не указали для компоновщика (linker), или же она собрана другой версией Студии.

  • Add

Client
Project published
17 July at 18:44
52 views
Labels