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

astap_

Известный
Всефорумный модератор
626
597
1 - u8"Text" отказывается работать (ImGUI v1.71)
2 - занимает несколько строк при инициализации, но работает. Стало интересно какие еще решения есть
дефолтный шрифт имгуи не поддерживает кириллицу, какие тут ещё могут быть решения?
 

Rjx13

Известный
Проверенный
224
160
ImGui::Text(u8"Чек-Текст");
ImGui::Button(u8"Закрыть", ImVec2(75, 20)); - не пашет, все равно вопросы вместо текста.

UPD:

C++:
        ImFontConfig font_config;
        font_config.OversampleH = 1;
        font_config.OversampleV = 1;
        font_config.PixelSnapH = 1;

        static const ImWchar ranges[] =
        {
            0x0020, 0x00FF, // Basic Latin + Latin Supplement
            0x0400, 0x044F, // Cyrillic
            0,
        };

        io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Tahoma.ttf", 16.0f, &font_config, ranges);

Есть еще решения проблемы, кроме предложенных?
После всех include"ов вставь и глянь:
C++:
#pragma execution_character_set("utf-8")
 
  • Нравится
Реакции: Vandal™

ishi

Известный
493
110
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
std::string mainXML = #include "Main.xml";
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
 

Cake_

Известный
Проверенный
263
313
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
std::string mainXML = #include "Main.xml";
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
Чем тебе с чтением не нравится?
 

_Vine_

Активный
154
57
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
std::string mainXML = #include "Main.xml";
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
file.cpp
C++:
R"(int function(int a , int b){
return a + b;
})"

main.cpp
C++:
int main(){
const char *file = {
#include "file.h"
};
printf("%s\n", file);
system("pause");
return 0;
}
 
  • Нравится
Реакции: ishi

Receiver

🥩 Передай meat, всё в скип, я в темпе
Проверенный
595
807
как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
 

Cake_

Известный
Проверенный
263
313
как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
emulategtakey, синхра, win api функции + timer

как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
C++:
void EmulKey(int KeyId)
{
    stOnFootData sync;
    memset(&sync, 0, sizeof(stOnFootData));
    sync = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData;
    sync.sKeys = KeyId;
    BitStream bsActorSync;
    bsActorSync.Write((BYTE)ID_PLAYER_SYNC);
    bsActorSync.Write((PCHAR)&sync, sizeof(stOnFootData));
    SF->getRakNet()->SendPacket(&bsActorSync);
}
Эмуляция с помощью синхры


emulategtakey, синхра, win api функции + timer


C++:
void EmulKey(int KeyId)
{
    stOnFootData sync;
    memset(&sync, 0, sizeof(stOnFootData));
    sync = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData;
    sync.sKeys = KeyId;
    BitStream bsActorSync;
    bsActorSync.Write((BYTE)ID_PLAYER_SYNC);
    bsActorSync.Write((PCHAR)&sync, sizeof(stOnFootData));
    SF->getRakNet()->SendPacket(&bsActorSync);
}
Эмуляция с помощью синхры
C++:
static int time=0;

if(GetTickCount() - 1000 > time)
    {
          time = GetTickCount();
          EmulKey(/* id клавиши */);
     }


       
// эмуляция нажатия клавиши 1 раз в секунду
 
  • Нравится
Реакции: Receiver

Receiver

🥩 Передай meat, всё в скип, я в темпе
Проверенный
595
807
emulategtakey, синхра, win api функции + timer


C++:
void EmulKey(int KeyId)
{
    stOnFootData sync;
    memset(&sync, 0, sizeof(stOnFootData));
    sync = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData;
    sync.sKeys = KeyId;
    BitStream bsActorSync;
    bsActorSync.Write((BYTE)ID_PLAYER_SYNC);
    bsActorSync.Write((PCHAR)&sync, sizeof(stOnFootData));
    SF->getRakNet()->SendPacket(&bsActorSync);
}
Эмуляция с помощью синхры



C++:
static int time=0;

if(GetTickCount() - 1000 > time)
    {
          time = GetTickCount();
          EmulKey(/* id клавиши */);
     }


       
// эмуляция нажатия клавиши 1 раз в секунду
и какой ид клавиши N ?
 

Receiver

🥩 Передай meat, всё в скип, я в темпе
Проверенный
595
807
Хукай онфут дату (id_player_sync )и выводи значение клавиши .
, я с телефона щас так бы написал код
не ебу как это сделать, не работал с пакетами, запрашиваю у вас код клавиши