HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 12.02.2018, 23:38
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

прив

Многие ли из вас знают, что с помощью Visual Studio можно отлаживать плагины прямо в игре и что делается это очень просто? Нет, блять, нихуя вы не знаете!

Но я вас научу. Берём студию и проект своего плагина, идём в конфигурацию проекта на страницу "Debugging" (Отладка) и ставим такие параметры:



D:\GTA\SAMP - это путь к игре, если кто не понял.

На странице General (Основные) в параметр Output Directory (Выходная директория) нужно указать путь к игре (если он уже не указан в Linker -> General -> Output File).

Далее, на странице Linker (Компоновщик) -> Debugging (Отладка) меняем параметр Generate Debug Info на "Debug".

Желательно изменить ещё следующие настройки (всё это уже настроено в автоматически создаваемой конфигурации "Debug", но может отсутствовать в готовых проектах или шаблонах):

C/C++ -> Optimization -> Optimization = Disabled

В C/C++ -> Preprocessor -> Preprocessor Definitions добавить _DEBUG;

C/C++ -> Code Generation -> Runtime Library = Multi-threaded debug

Всё, теперь при запуске приложения из студии, путём нажатия этой кнопки



вы больше не будете видеть похожую ошибку



вместо этого будет запущена игра с вашим плагином и в режиме отладки.

Ставьте тысячи брейкпоинтов и краштесь на здоровье!

Чтобы проворачивать то же самое в сампе, закиньте __loadsamp.asiв корень игры и в параметр "Command Arguments" с первого скрина впишите эту строку: -loadsamp -c -n FYPs_fan -h 127.0.0.1 -p 7777
 
Ответить с цитированием

  #2  
Старый 13.02.2018, 05:17
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Для DLL не подойдет.(Для справки остальным)

p.s. За исключением соба
 
Ответить с цитированием

  #3  
Старый 13.02.2018, 12:10
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe. В ида про есть отладчик с псевдокодом (правда энивей надо с дебаг инфой билдить для профита, но можно и самп так дебагать). Еще есть полезная хреновина в студии - Edit and Continue, позволяет редачить код без рекомпила.



Пиздек, не делайте так, юзайте дебаг конфигурацию
 
Ответить с цитированием

  #4  
Старый 13.02.2018, 12:21
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Цитата:
Сообщение от NarutoUA  

Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe. В ида про есть отладчик с псевдокодом (правда энивей надо с дебаг инфой билдить для профита, но можно и самп так дебагать). Еще есть полезная хреновина в студии - Edit and Continue, позволяет редачить код без рекомпила.

Пиздек, не делайте так, юзайте дебаг конфигурацию
Edit Continue

Вариант тоже неплохой на самом деле , только нужна база данных для модуля
 
Ответить с цитированием

  #5  
Старый 13.02.2018, 12:32
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

Цитата:
Сообщение от iAmerican  

Для DLL не подойдет.(Для справки остальным)
p.s. За исключением соба
ну переименовать .dll в .asi и все дела, а ещё некоторые лоадеры грузят и длл из своей папки

Цитата:
Сообщение от NarutoUA  

Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe
это менее удобно и если игру крашит через доли секунды после запуска, не успеешь прицепить отладчик

Цитата:
Сообщение от NarutoUA  

Пиздек, не делайте так, юзайте дебаг конфигурацию
это да, в проекте просто не было дебаг конфигурации
 
Ответить с цитированием

  #6  
Старый 13.02.2018, 12:39
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от FYP  

это менее удобно и если игру крашит через доли секунды после запуска, не успеешь прицепить отладчик
Хз, дебагаю ресамп таким образом, ниче не крашило
 
Ответить с цитированием

  #7  
Старый 13.02.2018, 12:51
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

Цитата:
Сообщение от NarutoUA  

Хз, дебагаю ресамп таким образом, ниче не крашило
ты не понял. если твой плагин (ресамп) крашит игру сразу же при запуске, ты не успеешь прицепить отладчик, для этого придётся добавлять какой-нибудь MessageBox в сам плагин, который бы паузил процесс до нажатия "ОК". это же касается и использования брейкпоинтов на раннем этапе загрузки.

да, твой вариант рабочий и его можно юзать, но зачем, когда есть вариант получше?
 
Ответить с цитированием

  #8  
Старый 13.02.2018, 12:53
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от FYP  

ты не понял. если твой плагин (ресамп) крашит игру сразу же при запуске, ты не успеешь прицепить отладчик, для этого придётся добавлять какой-нибудь MessageBox в сам плагин, который бы паузил процесс до нажатия "ОК". это же касается и использования брейкпоинтов на раннем этапе загрузки.
да, твой вариант рабочий и его можно юзать, но зачем, когда есть вариант получше?
Если твой плагин не запускает игру в окне то тогда ничем
 
Ответить с цитированием

  #9  
Старый 13.02.2018, 13:00
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

Цитата:
Сообщение от NarutoUA  

то тогда ничем
что ничем?

зачем моему плагину запускать игру в окне, когда для этого есть другие плагины или собейт и они с этим хорошо справляются? окно игры создаётся не моментально после старта
 
Ответить с цитированием

  #10  
Старый 13.02.2018, 13:13
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от FYP  

что ничем?
зачем моему плагину запускать игру в окне, когда для этого есть другие плагины или собейт и они с этим хорошо справляются? окно игры создаётся не моментально после старта
Ну в этом и преимущество аттача что игру можно перед этим запускать как хочешь.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.