Перейти к содержимому


Фотография

Компиляция исходников SKSE плагина Enhanced No Poison Dialog

skse dll visual studio компиляция

  • Авторизуйтесь для ответа в теме

#1 Ссылка на это сообщение rkirgizov

rkirgizov
  • Новенький
  • 6 сообщений
  •  

Отправлено

Товарищи, есть такой мод под Skyrim SE, Enhanced No Poison Dialog, найти его можно на  Нексусе. Автор выложил исходники там же.
Я его использую в своём моде на яды, но мне надо изменить буквально пару строк.

Скачал исходники, установил MS Visual Studio 2012, 2013, 2105, но не могу дать ума, как скомпилировать - не может найти связи внутри проекта. Ссылки восстановил, все include-файлы нормально подключаются, но некоторые переменные и объявления всё равно выдают ошибку...
Если  подключаешь через include файлы.h, которые определяют эти переменные, то ошибки появляются уже в файлах SKSE… вообще хрен поймёшь.

 

Если кто в курсе темы, то прошу помочь либо советом, либо скомпилить эти исходники, что там в коде убрать надо я подскажу.

Делаю на Win10

Понимаю, что где-то связи не проходят, но где и что...

 

Visual Studio выдаёт такие предупреждения:
ПредупреждениеC4183STATIC_ASSERT: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h88
ПредупреждениеC4183PluginHandle: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\PluginAPI.h40
ПредупреждениеC4183GetUIntPtr: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Relocation.h45
ПредупреждениеC4183GetUIntPtr: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Relocation.h75
ПредупреждениеC4183STATIC_ASSERT: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h51

 

И такие ошибки (ещё штук сто, но они подобные)
ОшибкаC2059синтаксическая ошибка: protectedEnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h59
ОшибкаC1903не удается восстановить после предыдущих ошибок; остановка компиляцииEnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h112
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h76
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h77
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h78
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h80
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h81
ОшибкаC2039string: не является членом "std"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h84
ОшибкаC2039s_baseAddr: не является членом "RelocationManager"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h99
ОшибкаC2039s_baseAddr: не является членом "RelocationManager"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h100
ОшибкаC2039s_baseAddr: не является членом "RelocationManager"EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h102
ОшибкаC2059синтаксическая ошибка: *EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\PluginAPI.h40ОшибкаC2059синтаксическая ошибка: )EnhancedNoPoisonDialogd:\skse64\src\skse64\skse64_common\Utilities.h63
ОшибкаC2059синтаксическая ошибка: sizeofEnhancedNoPoisonDialogd:\skse64\src\skse64\skse64\GameTypes.h51

 




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#2 Ссылка на это сообщение Karandra

Karandra
  • Знаменитый оратор



  • 3 685 сообщений
  •    

Отправлено

Странно всё как-то собрано в этом проекте. Иди в настройки проекта -> C/C++ -> Расширенные -> И убери всё из "Принудительные включаемые файлы". Добавь этот включаемый файл в начало main.cpp: #include <common/IPrefix.h>. Целиком будет так:

#include <common/IPrefix.h>
#include "skse64/PluginAPI.h"
#include "skse64/GameObjects.h"
#include "skse64_common/Relocation.h"
#include "skse64_common/SafeWrite.h"
#include "skse64_common/skse_version.h"
#include "skse64_common/BranchTrampoline.h"
#include "xbyak/xbyak.h"
#include <shlobj.h>

Возможно соберётся. И ещё, сам SKSE тебе тоже нужно собрать как статическую библиотеку (lib) и слинковать со своим проектом. Собирай как Release для x64.


pre_1454504183__logo.png Kortex Mod Manager: Discord | GitHub | Web-site

#3 Ссылка на это сообщение rkirgizov

rkirgizov
  • Новенький
  • 6 сообщений
  •  

Отправлено

Сделал.

К совету ещё пришлось перекомпилить common, skse64_common.

И добавить ссылки на их .lib в проект.

 

Спасибо, совет помог!)







Темы с аналогичным тегами skse, dll, visual studio, компиляция

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых