по SF API + thread (стандарт 11) [dll]

Статус
В этой теме нельзя размещать новые ответы.

anonnnnn___

Новичок
Автор темы
14
0
Приветствую дамы и господа.
1) Пытаюсь запустить в потоке функцию (создание файла) при заходе в GTA - она крашится с ошибкой.

upload_2016-12-18_18-28-24.png

K1NFaQn.png


Собственно код не большой:

C++:
void test()
{
    ofstream fout("thread.txt");
    fout << "Hi i thread" << endl;
}
C++:
thread th1(test);
th1.detach();

2) Есть ли какой либо метод в SF API, чтобы узнать, что игрок зашел в игру (нужно вывести текст после захода и появления стандартной камеры SA-MP)?
 

2Shae

Известный
149
8
Приветствую дамы и господа.
2) Есть ли какой либо метод в SF API, чтобы узнать, что игрок зашел в игру (нужно вывести текст после захода и появления стандартной камеры SA-MP)?
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrServerJoin)
{
short int sPlayerID;
D3DCOLOR D3DPlayerColor;
byte isNPC, nameLen;
char szPlayerName[25];

params->bitStream->ResetReadPointer();
params->bitStream->Read(sPlayerID);
params->bitStream->Read(D3DPlayerColor);
params->bitStream->Read(isNPC);
params->bitStream->Read(nameLen);
params->bitStream->Read(szPlayerName, nameLen);
szPlayerName[nameLen] = '\0';
params->bitStream->ResetReadPointer();

SF->getSAMP()->getChat()->AddChatMessage(-1, "%s[%d] подключился к серверу.", szPlayerName, sPlayerID);
};
}
 

anonnnnn___

Новичок
Автор темы
14
0
С потоками беда в целом. std::thread не запускается из основного потока (DLL). Связано это с особенностью Windows.

Можно попробовать костылнуть: запустить CreateThread, потом в этом потоке уже запускать через std::thread
С потоками что-то вообще беда, юзай CreateThread чтоле.
 
Статус
В этой теме нельзя размещать новые ответы.