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

y0dir1ga

Новичок
5
0
Если через cmake, то можешь за образец взять это. Если попроще, то можешь использовать Visual Studio Code, настроив проект по этому гайду
Дело в том что мне нужно перебиньдить кнопку активации с Insert на F3 в прикреплённом файле, кнопку в KeyHook.cpp заменил а как скомпилировать не понимаю.
 

Вложения

  • StealthRemastered.asi
    814.5 KB · Просмотры: 8

вайега52

cache miss
Модератор
3,065
3,311
Пишу обертку на sol2 под Lua для перегруженной функции. Почему-то, когда добавляю вторую функцию, я не могу корректно вызвать функцию из под Lua
C++:
RakClientType["RPC"] = sol::overload(
    [](RakClient &pRakClient, int rpcId, BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, bool shiftTimestamp, NetworkID networkId, BitStream *replyFromTarget)
    {
        return pRakClient.RPCd(&rpcId, bitStream, priority, reliability, orderingChannel, shiftTimestamp, networkId, replyFromTarget);
    },

    [](RakClient &pRakClient, int rpcId, const char *data, unsigned int bitLength, PacketPriority priority, PacketReliability reliability, char orderingChannel, bool shiftTimestamp, NetworkID networkId, BitStream *replyFromTarget)
    {
        return pRakClient.RPC(&rpcId, data, bitLength, priority, reliability, orderingChannel, shiftTimestamp, networkId, replyFromTarget);
    }
);
На lua вызываю ее так:
Lua:
rakClient:RPC(rpcId, bitstream, RakCore.PacketPriority.HIGH_PRIORITY, RakCore.PacketReliability.RELIABLE_ORDERED, 0, false, RakCore.UNASSIGNED_NETWORK_ID, nil)
Странно, что ошибка появляется если добавить вторую перегрузку (вместо bitStream data и lenght), когда оставляю только одну перегрузку (также через sol::overload), все работает корректно. Ошибка в Lua:
Код:
sol: no matching function call takes this number of arguments and the specified types
 

AKTPUCCA

Новичок
4
0
У меня вопрос по многофайловым проектам на языке C++. Допустим у меня в проекте следующие файлы:
main.cpp
sum.cpp // определение функции sum(int a, int b) {return a+b};
sum.h // объявление функции

В sum.cpp мы подключаем заголовочный файл (как это говорят делать) #include "sum.h"
В main.cpp мы так же подключаем заголовочный файл #include "sum.h"

Теперь вопрос: если директива "#include" просто вставляет текст из файла, который он подключает, то как нахуй работает заголовочный файл; ведь подключая "sum.h" в "main.cpp" мы по сути вставляем ТОЛЬКО объявление функции в main.cpp, но каким-то чудом тут еще и определение из sum.cpp работает, хотя мы его не подключаем, а ДАЖЕ НАОБОРОТ, ЭТО sum.cpp вставляет в себя текст sum.h. Что в итоге: sum.h не содержит в себе текст из sum.cpp, и main.cpp не содержит в себе текст sum.cpp. main.cpp вставляет текст sum.h, а sum.h НЕ вставляет в себя определение функции sum(), то есть НЕ инклудит в себя sum.cpp. Это заставляет меня сомневаться в знании "#include".

В моем понимании, чтобы функция работала, мы должны подключить ее определение, а тут с заголовками мы не подключаем определение (sum.cpp), мы подключаем заголовочный "sum.h", но в самом заголовочном мы не подключаем определение в "sum.cpp". Объясните почему так, ПОЧЕМУ ТАК?! Мозг ломается.
 

N08I40K

Известный
223
107
У меня вопрос по многофайловым проектам на языке C++. Допустим у меня в проекте следующие файлы:
main.cpp
sum.cpp // определение функции sum(int a, int b) {return a+b};
sum.h // объявление функции

В sum.cpp мы подключаем заголовочный файл (как это говорят делать) #include "sum.h"
В main.cpp мы так же подключаем заголовочный файл #include "sum.h"

Теперь вопрос: если директива "#include" просто вставляет текст из файла, который он подключает, то как нахуй работает заголовочный файл; ведь подключая "sum.h" в "main.cpp" мы по сути вставляем ТОЛЬКО объявление функции в main.cpp, но каким-то чудом тут еще и определение из sum.cpp работает, хотя мы его не подключаем, а ДАЖЕ НАОБОРОТ, ЭТО sum.cpp вставляет в себя текст sum.h. Что в итоге: sum.h не содержит в себе текст из sum.cpp, и main.cpp не содержит в себе текст sum.cpp. main.cpp вставляет текст sum.h, а sum.h НЕ вставляет в себя определение функции sum(), то есть НЕ инклудит в себя sum.cpp. Это заставляет меня сомневаться в знании "#include".

В моем понимании, чтобы функция работала, мы должны подключить ее определение, а тут с заголовками мы не подключаем определение (sum.cpp), мы подключаем заголовочный "sum.h", но в самом заголовочном мы не подключаем определение в "sum.cpp". Объясните почему так, ПОЧЕМУ ТАК?! Мозг ломается.
 

AKTPUCCA

Новичок
4
0
Там не описано каким образом .h присоединяет определение из .cpp без инклуда
 

D0glian

Новичок
18
0
Итак, помогите мне выполнить упражнение на C++, нужно сделать это с включением iostream и использованием пространства имен std на базовом языке. Это упражнение пользователь должен визуализировать на следующем рисунке: 5 звездочек и тире ( *****-) под 4 звездочками и двумя тире ****-- под 3 звездочками два тире и ноль ( ** *--0) под двумя звездочками два тире и два нуля ( **--00) под звездочкой два тире три нуля ( *--000) под двумя тире и 4 нуля ( --0000)
 

Вложения

  • asdasd.png
    asdasd.png
    2.3 KB · Просмотры: 62

AKTPUCCA

Новичок
4
0
Итак, помогите мне выполнить упражнение на C++, нужно сделать это с включением iostream и использованием пространства имен std на базовом языке. Это упражнение пользователь должен визуализировать на следующем рисунке: 5 звездочек и тире ( *****-) под 4 звездочками и двумя тире ****-- под 3 звездочками два тире и ноль ( ** *--0) под двумя звездочками два тире и два нуля ( **--00) под звездочкой два тире три нуля ( *--000) под двумя тире и 4 нуля ( --0000)
это прям база база, просто std::cout << "*****_" << std::endl;
std::cout << "****__" << std::endl; И так далее.
Если суть в автоматизации, то почитай про класс стринг std::string и его методы
 
  • Злость
  • Эм
Реакции: ARMOR и 4el0ve4ik

ARMOR

God has forsaken us
Модератор
5,060
7,468
При создании ImGui окна и смене его прозрачности через стиль она не меняется а фон просто становится черным:
1704394681246.png


Искал решение в интернете но нихуя не смог найти. Переписывал даже с DX9 на DX11. Но нихуя.
Решение этому говну есть вообще?

UP.
Решение:
Установить для PresentParameters.BackBufferFormat формат D3DFMT_A8R8G8B8
 
Последнее редактирование:
  • Вау
Реакции: вайега52

0x73616D

Активный
140
43
Is it possible to make an http post request for a message on a discord website without using libraries like CURL?
preferably using windows libs, such as Wininet, winhttp or other native windows. (It would be nice if you give an example)

Можно ли сделать HTTP-запрос на публикацию сообщения на веб-сайте Discord без использования таких библиотек, как CURL?
желательно использовать библиотеки Windows, такие как Wininet, winhttp или другие собственные окна. (Было бы здорово, если бы вы привели пример)
 

Lqst31

Новичок
8
1
я не знаю туда ли я пишу но вот вопрос, как мне пофиксить проблему с ImGui когда я закрываю меню у меня игра зависает но звуки кнопок и музика игры идёт но когда картинка зависает игра всеровно роботает типо если нажать на инвентарь например и нажать на кнопку открытия меню то в игре картинка поменяеться я взял обычний хук киеро 11direct x и рисовал меню вот код (и еще не роботают флаги) и не применяються темы когда я пишу ImGui::StyleColorLight все билдиться нормально но при открытии меню игра крашиться или не применяеться
C++:
#include "includes.h"
#include "offsets.h"

extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);




Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;

void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    static ImGuiWindowFlags winFlags = {
        ImGuiWindowFlags_NoResize |
        ImGuiWindowFlags_NoSavedSettings |
        ImGuiWindowFlags_NoMove |
        ImGuiWindowFlags_NoCollapse };
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}

bool init = false;
bool menu = false;

HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)& pDevice)))
        {
            ImGui::StyleColorsLight;
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)& pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
    }

    if (GetAsyncKeyState(VK_INSERT) & 1)
    {
        menu = !menu;
    }


    if (menu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();

        ImGui::Begin("я гей но об этом никто не узнает");
        ImGui::End();

        ImGui::Render();

        pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
        ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
        return oPresent(pSwapChain, SyncInterval, Flags);
    }
}

DWORD WINAPI MainThread(LPVOID lpReserved)
{
    bool init_hook = false;
    do
    {
        if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
        {
            kiero::bind(8, (void**)& oPresent, hkPresent);
            init_hook = true;
        }
    } while (!init_hook);
    return TRUE;
}

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
 
Последнее редактирование модератором:

g305noobo

Известный
Модератор
369
682
Is it possible to make an http post request for a message on a discord website without using libraries like CURL?
preferably using windows libs, such as Wininet, winhttp or other native windows. (It would be nice if you give an example)

Можно ли сделать HTTP-запрос на публикацию сообщения на веб-сайте Discord без использования таких библиотек, как CURL?
желательно использовать библиотеки Windows, такие как Wininet, winhttp или другие собственные окна. (Было бы здорово, если бы вы привели пример)