Другое SAMPFUNCS | API C++

AWRage

Активный
642
141
Как правильно освободить выделенную память? Достаточно просто освободить переменную, которая содержит указатель на класс, в котором тоже выделяется память или нужно сначала освободить память в классе, а потом освободить переменную-класс. Код ниже будет правильным?
C++:
class MyClass
{
    int *i = new int;
};


MyClass *Class = new MyClass;

// some code

delete Class;
 

NarutoUA

NarutoUA
BH Team
692
1,549
Как правильно освободить выделенную память? Достаточно просто освободить переменную, которая содержит указатель на класс, в котором тоже выделяется память или нужно сначала освободить память в классе, а потом освободить переменную-класс. Код ниже будет правильным?
C++:
class MyClass
{
    int *i = new int;
};


MyClass *Class = new MyClass;

// some code

delete Class;

В деструкторе класса высвобождать выделенную в классе память. Деструктор автоматически вызовется при выполнении delete Class;
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
В деструкторе класса высвобождать выделенную в классе память. Деструктор автоматически вызовется при выполнении delete Class;
А как на счет обычных переменных? Их не нужно освобождать в деструкторе? Они сами удалятся после удаления класса, как локальные переменные в функции, так?
 

NarutoUA

NarutoUA
BH Team
692
1,549
А как на счет обычных переменных? Их не нужно освобождать в деструкторе? Они сами удалятся после удаления класса, как локальные переменные в функции, так?
Сами, класс это как структура, только класс.
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
1̶.̶ ̶П̶о̶ч̶е̶м̶у̶ ̶е̶с̶л̶и̶ ̶ф̶у̶н̶к̶ц̶и̶ю̶ ̶D̶l̶l̶M̶a̶i̶n̶ ̶п̶е̶р̶е̶и̶м̶е̶н̶о̶в̶а̶т̶ь̶,̶ ̶т̶о̶ ̶с̶к̶р̶и̶п̶т̶ ̶о̶т̶к̶а̶з̶ы̶в̶а̶е̶т̶с̶я̶ ̶р̶а̶б̶о̶т̶а̶т̶ь̶.̶ ̶Н̶е̶ ̶т̶о̶ ̶ч̶т̶о̶ ̶б̶ы̶ ̶э̶т̶о̶ ̶м̶н̶е̶ ̶м̶е̶ш̶а̶л̶о̶,̶ ̶н̶о̶ ̶п̶р̶о̶с̶т̶о̶ ̶и̶н̶т̶е̶р̶е̶с̶н̶о̶,̶ ̶п̶о̶ч̶е̶м̶у̶? Гугол наше все.
2. Как компилятор определяет "точку входа в плагин". То есть, как он понимает, что DllMain - это главная функция, которая инджектит плагин, но не, скажем, Loop.
 

SR_team

like pancake
BH Team
4,798
6,470
1̶.̶ ̶П̶о̶ч̶е̶м̶у̶ ̶е̶с̶л̶и̶ ̶ф̶у̶н̶к̶ц̶и̶ю̶ ̶D̶l̶l̶M̶a̶i̶n̶ ̶п̶е̶р̶е̶и̶м̶е̶н̶о̶в̶а̶т̶ь̶,̶ ̶т̶о̶ ̶с̶к̶р̶и̶п̶т̶ ̶о̶т̶к̶а̶з̶ы̶в̶а̶е̶т̶с̶я̶ ̶р̶а̶б̶о̶т̶а̶т̶ь̶.̶ ̶Н̶е̶ ̶т̶о̶ ̶ч̶т̶о̶ ̶б̶ы̶ ̶э̶т̶о̶ ̶м̶н̶е̶ ̶м̶е̶ш̶а̶л̶о̶,̶ ̶н̶о̶ ̶п̶р̶о̶с̶т̶о̶ ̶и̶н̶т̶е̶р̶е̶с̶н̶о̶,̶ ̶п̶о̶ч̶е̶м̶у̶? Гугол наше все.
2. Как компилятор определяет "точку входа в плагин". То есть, как он понимает, что DllMain - это главная функция, которая инджектит плагин, но не, скажем, Loop.
она подписана. в компиляторе можно изменить точку входа
 
  • Нравится
Реакции: AWRage

Vasiliy77

Известный
22
1
Как можно с помощью SF получить список загруженных cleo скриптов, или вообще участок процесса, куда они загрузились (именно названия)? И еще dll библиотек, если возможно. Названия функций хотя бы назовите
 

Vasiliy77

Известный
22
1
Можно ли сделать рендер картинки через SF функции, т.е. чтобы сама картинка была в самом исходнике уже, без доп. файлов .txd? Какие функции надо юзать?
И какие функции нужны для рендера картинки на загрузочный экран, и уже во время игры?
 

AWRage

Активный
642
141
Можно ли будет использовать SAMPFUNCS в НЕ sf-плагинах? То есть, просто некоторые функции.
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,262
1,752
Можно ли будет использовать SAMPFUNCS в НЕ sf-плагинах? То есть, просто некоторые функции.
можно, но сложно

p.s. делал вызов функции выгрузки плагина
C++:
((void(__thiscall ) (void _this, std::string text)) (g_dwSF_Addr + 0x8E9A0)) ((void*)(g_dwSF_Addr + 0x28F7C0), "blablabla.sf");
 
Последнее редактирование:

2Shae

Известный
149
8
Можно ли сделать рендер картинки через SF функции, т.е. чтобы сама картинка была в самом исходнике уже, без доп. файлов .txd? Какие функции надо юзать?
И какие функции нужны для рендера картинки на загрузочный экран, и уже во время игры?
https://www.blast.hk/wiki/tutorials:api_lesson_render