Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Условие нужноНе совсем понял, можно подробней?
Условие нужноНе совсем понял, можно подробней?
Условие нужно
Если это в маинлуп то ты создаёшь очень много потоков и из-за етого вылет нужны проверки
Екземпляр класса должен быть глобальным или staticНе совсем понял, можно подробней?
Попытался сделать глобальным и статическим - результата нет, всё также вылетает.Екземпляр класса должен быть глобальным или static
Необходимость в парилке с потоком возникла с целью нормально использовать задержку?Попытался сделать глобальным и статическим - результата нет, всё также вылетает.
Хочу обратить внимание на то, что если я укажу th.join() после: std::thread th = test.start(""), то игра не вылетит, но к сожалению от потока не будет смысла (т.к. фризит процесс при Sleep).
UPD: Проверил на консольном приложении - успешно (но не в SF).
![]()
Да, но не только из-за задержки.Необходимость в парилке с потоком возникла с целью нормально использовать задержку?
Если это вдруг поможет, предлагаю простой вариант избавления от этой парилки, с библиотекой thread.Да, но не только из-за задержки.
const auto myTask = []()
{
// Твой код.
// Можно использовать Sleep и это не будет тормозить игру.
};
std::thread(myTask).detach(); //<--- Сам вызов потока
Хм, твой способ не подходит для моей ситуации, но за deatch огромное спасибо. На самом деле это решило мою проблему.Если это вдруг поможет, предлагаю простой вариант избавления от этой парилки, с библиотекой thread.
C++:const auto myTask = []() { // Твой код. // Можно использовать Sleep и это не будет тормозить игру. }; std::thread(myTask).detach(); //<--- Сам вызов потока
Есть ли возможность менять шрифт текста для ImGui меню?
ImGui::CreateContext();
ImGui_ImplWin32_Init(GetActiveWindow());
ImGui_ImplDX9_Init(SF->getRender()->getD3DDevice());
ImGuiIO& IO = ImGui::GetIO();
if (!bChangeFont) {
ImFontConfig font_config;
TCHAR path[MAX_PATH];
HRESULT hr = SHGetFolderPathA(NULL, CSIDL_FONTS, NULL, SHGFP_TYPE_CURRENT, path);
std::string fPath = std::string(path).append("\\arialbd.ttf");
IO.Fonts->AddFontFromFileTTF(fPath.c_str(), 14.0f, &font_config, IO.Fonts->GetGlyphRangesCyrillic());
smallFont = IO.Fonts->AddFontFromFileTTF(fPath.c_str(), 12.0f, &font_config, IO.Fonts->GetGlyphRangesCyrillic());
bChangeFont = true;
}
ImGuiStyle* style = &ImGui::GetStyle();
registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю такВозможно ли в registerChatCommand передать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
void CALLBACK cmdExample(std::string param)
{
if (param.empty())
return;
const auto task = [param]() // Просто добавил param
{
// Код, задержки, все дела.
int my_int = std::stoi(param); // Получение параметра функции
};
std::thread(task).detach();
}
У меня нет определённой команды.registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю так
C++:void CALLBACK cmdExample(std::string param) { if (param.empty()) return; const auto task = [param]() // Просто добавил param { // Код, задержки, все дела. int my_int = std::stoi(param); // Получение параметра функции }; std::thread(task).detach(); }
Стандартом не определена однозначность.Не подскажете, какой тип имеет выражение?)
Код:[](){};
#include <iostream>
#include <functional>
#include <type_traits>
auto main(void) -> int {
void(*dd)() = [] { std::cout << '1'; };
std::function<void()> pp = [] { std::cout << '2'; };
// std::function pp = [] { std::cout<<'2'; }; // c++ 17
auto cc = [] { std::cout << '3'; };
std::cout << pp.target_type().name() << std::endl;
std::cout << typeid(cc).name() << std::endl;
std::cout << typeid(*cc).name() << std::endl;
std::cout << typeid(*dd).name() << std::endl;
}
Надеюсь, чуточку прояснил ситуацию, но в любом случае советую посмотретьZ4mainEUlvE0_
Z4mainEUlvE1_
FvvE
FvvE