Другое С/С++ Вопрос - Ответ

444555

Новичок
24
5
Ещё вопрос возник. Не создаст ли утечку памяти то что при вызове коллбека создаются переменные, но не освобождаются?
Или они не будут выделять память заново, а просто перезапишутся?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Не создаст.
Переменная, объявленная внутри функции/цикла/..., автоматически уничтожается вместе с выходом из тела функции/цикла.

Если ты будешь использовать что-то вроде char* p = new char;, то это может повлечь утечку.
 
  • Нравится
Реакции: 444555

444555

Новичок
24
5
Как определить корневую папку процесса, в котором загружена dll, если функция определения в этой самой dll?
 

Dark_Knight

Me, me and me.
Друг
4,078
2,095
Крч, похоже не удастся мне без костылей получить директорию. Буду через снапшоты и имена процессов искать саньку, и получать её папку.
И где же тут костыль?
C:
#include <iostream>
#include <Windows.h>

void main(){
char path[MAX_PATH]
GetCurrentDirectory(MAX_PATH, path);
std::cout << path << '\n';
getch();
}
 
  • Нравится
Реакции: 444555

444555

Новичок
24
5
C:
bool CALLBACK iRPC(stRakNetHookParams *params)
{
   if (params->packetId == 56)
   {
     byte iNumber;
     float iX;
     float iY;
     float iZ;
    byte iI;
     params->bitStream->ResetReadPointer();
     params->bitStream->Read(iNumber);
     params->bitStream->Read(iX);
     params->bitStream->Read(iY);
     params->bitStream->Read(iZ);
     params->bitStream->Read(iI);
     params->bitStream->ResetReadPointer();
     WriteFile(miD, iNumber, sizeof(iNumber), sometrash, NULL);
     SF->getSAMP()->getChat()->AddChatMessage(444444, "%d %f %f %f %d", iNumber, iX, iY, iZ, iI);
Должно записывать порядковый номер иконки в стриме, но записывает абракадабру, которая даже не отображается в окне ввода (не могу её прикрепить)
Что не так?
 

2Shae

Известный
149
8
C:
bool CALLBACK iRPC(stRakNetHookParams *params)
{
   if (params->packetId == 56)
   {
     byte iNumber;
     float iX;
     float iY;
     float iZ;
    byte iI;
     params->bitStream->ResetReadPointer();
     params->bitStream->Read(iNumber);
     params->bitStream->Read(iX);
     params->bitStream->Read(iY);
     params->bitStream->Read(iZ);
     params->bitStream->Read(iI);
     params->bitStream->ResetReadPointer();
     WriteFile(miD, iNumber, sizeof(iNumber), sometrash, NULL);
     SF->getSAMP()->getChat()->AddChatMessage(444444, "%d %f %f %f %d", iNumber, iX, iY, iZ, iI);
Должно записывать порядковый номер иконки в стриме, но записывает абракадабру, которая даже не отображается в окне ввода (не могу её прикрепить)
Что не так?
Считывать нужно следующее: BYTE iconID, float x, float y, float z, BYTE markerType, DWORD color, BYTE style. В таком же порядке.
 

444555

Новичок
24
5
Считывать нужно следующее: BYTE iconID, float x, float y, float z, BYTE markerType, DWORD color, BYTE style. В таком же порядке.
чувак, я считал всё что мне нужно и сделал это правильно. На сайте сампа я нашёл пример пакета и логично подобрал форму заполнения. В чат всё выводит корректно, проблема с записью, которая не работает.