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

Тема в разделе "C, C++", создана пользователем Jesik, 10 май 2013.

  1. NarutoUA

    NarutoUA C++ Hokage developer
    BH Team

    Регистрация:
    26.05.2013
    Сообщения:
    599
    Симпатии:
    684
    Репутация:
    311
    Оказалось или это в документации написано?
     
    RanGoo нравится это.
  2. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Ковырял свой .asi, смотрел сурсы соба и сф сдк, нашел в actor_info такую штукенцию:
    void                *pNeck;                /* 1164 - void* pNeck
          (pChest?)
           - 4 unknown
           - float height
           - float front/back
           - float left/right
           - void* pObject
           (same struct for the following body-part-pointers [except pLeft/RightArm])
        */
        void                *pHead;                /* 1168 */
        void                *pLeftArm;            /* 1172 */
        void                *pRightArm;            /* 1176 */
        void                *pLeftLowArm;        /* 1180 */
        void                *pRightLowArm;        /* 1184 */
        void                *pLeftLeg;            /* 1188 */
        void                *pRightLeg;            /* 1192 */
        void                *pLeftLowLeg;        /* 1196 */
        void                *pRightLowLeg;        /* 1200 */
        void                *pRightMidLeg;        /* 1204 */
        void                *pLeftMidLeg;        /* 1208 */
        void                *pLeftMidArm;        /* 1212 */
        void                *pRightMidArm;        /* 1216 */
        void                *pLeftShoulder;        /* 1220 */
        void                *pRightShoulder;    /* 1224 */
        void                *pChest;            /* 1228 */
        void                *pMouth;            /* 1232 */
    Указатели на некоторыечасти тела. Если создать соотв. стр-ру
    
    struct stBodyPart
    {
        BYTE bIgnore[0x10];
        CObject* pObject;
    };
    
    то через pObject можно будет получить инфу о конкретных частях тела игрока, хранящуюся в полях структур CPhysical, CEntity, CPlaceable (т.к. наследование), включая позицию костей, без использования функи? И какая это будет позиция, настоящия, или это какие-то дефолтные оффсеты, необходимые для построения модели? Или я вообще не правильно это понял? Поясните крч плз
     
    RanGoo нравится это.
  3. NarutoUA

    NarutoUA C++ Hokage developer
    BH Team

    Регистрация:
    26.05.2013
    Сообщения:
    599
    Симпатии:
    684
    Репутация:
    311
    Скорей всего нет, там другая структура для костей:
    #pragma pack(push, 4)
    class PLUGIN_API AnimBlendFrameData
    {
    public:
    unsigned __int8 m_nFlags;
    CVector m_vOffset;
    class IFrame *m_pIFrame;
    unsigned __int32 m_dwNodeId;
    };
    #pragma pack(pop)

    Лучше не выебыватся и юзать функу (ну я думаю функа считает позицию игрока в мире + оффсет для кости, так что в теории ты можешь считать вручную)
     
    RanGoo и p1cador нравится это.
  4. Skadi

    Skadi Активный пользователь

    Регистрация:
    03.11.2014
    Сообщения:
    43
    Симпатии:
    8
    Репутация:
    8
    как задать путь до файла, который не имеет расширения?
    получается так, что он принимает файл без расширения за папку.
    strcat_s(path, "\\тут какой то путь\\файл");


    решил данную проблему путём копирования файла и изменения его названия.
    не знаю насколько это хорошо, мб кто то подскажет.
     
    #1284 Skadi, 1 дек 2016
    Последнее редактирование: 2 дек 2016
    RanGoo нравится это.
  5. Woofing Giraffe

    Woofing Giraffe Известный пользователь

    Регистрация:
    14.06.2015
    Сообщения:
    379
    Симпатии:
    45
    Репутация:
    14
    А что ты с ним собрался делать то?
     
    RanGoo нравится это.
  6. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Хук DirectX, работают все функи, коме DrawLine. Спиздил ее отсюда: https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/d3drender.cpp

    Вот вызовы:
    
    pD3DHook->pRender->DrawLine(v[0], v[1], 0xffff0000);
    pD3DHook->pRender->DrawLine(xy[0], xy[1], 0xff00ff00);
    где v[2] и xy[2] имеют тип D3DXVECTOR3
    v
    заполнил вручную (1.0;1.0 ... 500.0, 500.0)
    xy содержит 2д координаты (мои и таргета)
    В результате должно быть две линии - красная(диагональ с левого верхнего угла экрана) и зеленая - от меня до цели.
    Но нихуя. Рисует непонятно что (квадраты мои, на них внимание не обращайте):
    Screenshot_4.png
    Если целюсь в педа с другой стороны - рисует вообще в другом месте:
    Screenshot_5.png
    Если стать по другому. То ее вообще не видно будет.
    Прямо внутри функи CD3DRender:: DrawLine сделал вывод координат в чат, так же отрендерил доп. инфу (слева). Числа правильные. Почему зеленая линия рисуется вообще не там, где мне нужно, а красной вообще нет?

    Вот функция из соба(из сурса, ссылка на который в начале сообщения), в ней абсолютно ничего не менял, только добавил вывод в чат
    
    bool CD3DRender::DrawLine(const D3DXVECTOR3 &a, const D3DXVECTOR3 &b, DWORD dwColor)
    {
        if (FAILED(CD3DBaseRender::BeginRender()))
            return false;
    
        ////////////////////////////////////////////////////
        // Make sure we have a valid vertex buffer.
        if (m_pD3Dbuf == NULL)
        {
            return false;
        }
    
        m_pD3Ddev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG2);
        m_pD3Ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
        //m_pD3Ddev->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
        //m_pD3Ddev->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
    
        m_pD3Ddev->SetRenderState(D3DRS_CLIPPING, false);
        m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);
        //m_pD3Ddev->SetRenderState ( D3DRS_LIGHTING, false );
        D3DLVERTEX    lineList[2];
    
        //////////////////////////////////////////////////
        // Lock the vertex buffer and copy in the verts.
        m_pD3Dbuf->Lock(0, 0, (void **)&lineList, D3DLOCK_DISCARD | D3DLOCK_NOSYSLOCK); // flogs: D3DLOCK_NOSYSLOCK, D3DLOCK_DISCARD
        {
            lineList[0].x = a.x;
            lineList[0].y = a.y;
            lineList[0].z = a.z;
            lineList[0].color = dwColor;
            lineList[0].specular = dwColor;
    
            lineList[1].x = b.x;
            lineList[1].y = b.y;
            lineList[1].z = b.z;
            lineList[1].color = dwColor;
            lineList[1].specular = dwColor;
        }
    
        m_pD3Dbuf->Unlock();
    
        // store FVF to restore original at the end of this function
        DWORD        fvf;
        m_pD3Ddev->GetFVF(&fvf);
        m_pD3Ddev->SetFVF(D3DFVF_LVERTEX);
        //m_pD3Ddev->SetFVF( D3DFVF_PRIMITIVES );
    
        ////////////////////////////////////////////////////
        // Draw!
        p1c->addMessageToChat(0xFFe1e1e1, "1) %.1f %.1f %.1f %.1f | %x", a.x, a.y, b.x, b.y, dwColor);
        p1c->addMessageToChat(0xFFc1c1c1, "2) %.1f %.1f %.1f %.1f | %x", lineList[0].x, lineList[0].y, lineList[1].x, lineList[1].y, dwColor);
        m_pD3Ddev->DrawPrimitiveUP(D3DPT_LINESTRIP, 1, lineList, sizeof(lineList) / 2);
    
        // reset states
        m_pD3Ddev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
        m_pD3Ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
        m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);
        m_pD3Ddev->SetRenderState(D3DRS_CLIPPING, true);
    
        // restore FVF
        m_pD3Ddev->SetFVF(fvf);
    
        CD3DBaseRender::EndRender();
    
        return true;
    }
    
     
    #1286 p1cador, 5 дек 2016
    Последнее редактирование: 5 дек 2016
    RanGoo нравится это.
  7. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26.10.2013
    Сообщения:
    2.668
    Симпатии:
    1.660
    Репутация:
    438
    Была такая проблема. Пизди линии из antTweakBar
     
    Последние данные очков репутации:
    Picador: 2 Очки (бля от души, от атб все запахало) 5 дек 2016
    RanGoo и p1cador нравится это.
  8. FYP

    FYP админ какой-то

    Регистрация:
    09.03.2013
    Сообщения:
    1.113
    Симпатии:
    1.959
    Репутация:
    736
    @Picador так это же функция рендера линии в мире. она принимает 3д координаты.
     
    RanGoo и p1cador нравится это.
  9. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    cerf)
    я еще думал, нахера там z
    ну щас точно все на свои места стало) спс

    Может есть инфа минимальная хотя бы, VAC как-то будет палить, если я сделаю ReadProcessMemory с левого .exe? Ну просто с проверкой на наличие инжекнутых .dll библиотек я согласен, справедливо, VAC это изи палит. А что, если просто прочитать (!не записывать) что-либо через ReadProcessMemory, это вообще может палиться? Хотя бы в теории, оставит ли след где-то в игре сам факт того, что я просто прочитал значение? Просто я плохо шарю в том, как это все устроено и мне кажется, что в прочтении значения по опред. адресу не должно быть ничего серьезного, это вроде как просто в щелочку посмотреть :D Или всё-таки где-то эта операция будет оставлять след? Там регистры какие-нибудь, еще че, я хз
    А то у меня в бошке все как-то слишком изи получается, прочитал координаты игроков через стороннее приложение->отрендерил через него же поверх всех окон = изи вх. Или просто приаттачить к бандикаму там, или еще куда, что поверх всех окон висит и с ваком дружит. Но подозреваю, что я далеко не первый такой умник.
     
    #1289 p1cador, 5 дек 2016
    Последнее редактирование: 6 дек 2016
    RanGoo нравится это.
  10. FYP

    FYP админ какой-то

    Регистрация:
    09.03.2013
    Сообщения:
    1.113
    Симпатии:
    1.959
    Репутация:
    736
    @Picador я особо не вдавался в работу VAC. отследить вызов ReadProcessMemory можно только с помощью драйвера. в MTA, например, он есть. кроме ReadProcessMemory есть и другие способы прочитать память процесса, они сложнее. есть и возможность скрытно загрузить dll в процесс и скрыть её вообще от всего, только это тоже сложно и сам процесс скрытия может детектироваться.
     
    RanGoo и p1cador нравится это.
  11. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Т.е. про наличие этого драйвера в кс го точно сказать не можешь?

    В какую сторону гуглить?

    Ну я подозревал, что это всетаки возможно. Это ж комп, тут, в теории возможно сделать что угодно, но для меня это рил слишком сложно будет. А вот про то, как прочитать значения безпалева, кроме ReadProcessMemory, я бы почитал. Что искать?
    П.С. спс за помощь, от души, хз где еще мне в этом помогут на таком уровне
     
    RanGoo нравится это.
  12. Woofing Giraffe

    Woofing Giraffe Известный пользователь

    Регистрация:
    14.06.2015
    Сообщения:
    379
    Симпатии:
    45
    Репутация:
    14
    Вот есть у меня функция и есть глобальная переменная. Как мне передать в эту функцию переменную, чтобы саму эту переменную функция могла изменить (не переданную, а глобальную)? Указатель не помогает
     
    RanGoo нравится это.
  13. legend2360

    legend2360   ¯\_(°□°)_/¯
    Всефорумный модератор

    Регистрация:
    23.03.2013
    Сообщения:
    2.387
    Симпатии:
    846
    Репутация:
    479
    Но она же глобальная. Зачем передавать ссылку на неё?
     
    RanGoo нравится это.
  14. FYP

    FYP админ какой-то

    Регистрация:
    09.03.2013
    Сообщения:
    1.113
    Симпатии:
    1.959
    Репутация:
    736
    не могу.
    в сторону обходов обнаружения вызовов Read/WriteProcessMemory.
     
    RanGoo и p1cador нравится это.
  15. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26.10.2013
    Сообщения:
    2.668
    Симпатии:
    1.660
    Репутация:
    438
    по этому надо переходить на линукс. Процессы запущенные под вайн чувствуют себя как в винде и могут видеть только виртуальное пространство типа винды, в то время, как со стороны линукс приложений видно все, и они могут воздействовать на процессы линукса. Таким образом можно подцепить линуксовый дебагер к виндовым приложениям и они его никак не смогут задетектить
     
    RanGoo и p1cador нравится это.
  16. kiceargy

    kiceargy Известный пользователь

    Регистрация:
    09.08.2016
    Сообщения:
    175
    Симпатии:
    40
    Репутация:
    -15
    1. Как вызвать диалог выбора файла? Я кнопку создал, у кнопки есть значение, если нажать на нее, воспроизводится код, где я написал ВСТАВИТЬ ДИАЛОГ ВЫБОРА ФАЙЛА СЮДА
    case WM_COMMAND:
            switch (wParam)
            {
            case 1:
    ВСТАВИТЬ ДИАЛОГ ВЫБОРА ФАЙЛА СЮДА
                break;
            }
     
    RanGoo нравится это.
  17. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    RanGoo нравится это.
  18. kiceargy

    kiceargy Известный пользователь

    Регистрация:
    09.08.2016
    Сообщения:
    175
    Симпатии:
    40
    Репутация:
    -15
    Не работает эта функция, на MSDN не чего нету,
     
    RanGoo нравится это.
  19. FYP

    FYP админ какой-то

    Регистрация:
    09.03.2013
    Сообщения:
    1.113
    Симпатии:
    1.959
    Репутация:
    736
    если что-то не работает у тебя, это не значит, что оно не работает вовсе.
     
    RanGoo нравится это.
  20. kiceargy

    kiceargy Известный пользователь

    Регистрация:
    09.08.2016
    Сообщения:
    175
    Симпатии:
    40
    Репутация:
    -15
    Я имею ввиду у себя. | Сам сделал, как вспомнил про #include "stdafx.h"

    1. Как переместить файл. Пробовал MoveFile но хз что то
        case WM_COMMAND:
            switch (wParam)
            {
            case 1:
                wchar_t fn[1024];
                OPENFILENAMEW ofn;
    
                fn[0] = L'\0';
                ofn.lStructSize = sizeof(OPENFILENAMEW);
                ofn.hwndOwner = hwnd;
                ofn.lpstrFilter = L"Cleo Script Files | .cs\0*.cs\0\0";
                ofn.lpstrCustomFilter = NULL;
                ofn.nFilterIndex = 1;
                ofn.lpstrFile = fn;
                ofn.nMaxFile = 1024;
                ofn.lpstrFileTitle = NULL;
                ofn.lpstrInitialDir = NULL;
                ofn.lpstrTitle = NULL;
                ofn.Flags = OFN_EXPLORER;
                ofn.lpstrDefExt = NULL;
                ofn.FlagsEx = 0;
                if (GetOpenFileNameW(&ofn))
                {
                    ВОТ ТУТ НУЖЕН КОД ПЕРЕМЕШЕНИЯ
                }
    
                break;
    1. Как быть? никак не получается переместить с++
    case 1:
                wchar_t fn[1024];
                OPENFILENAMEW ofn;
    
                fn[0] = L'\0';
                ofn.lStructSize = sizeof(OPENFILENAMEW);
                ofn.hwndOwner = hwnd;
                ofn.lpstrFilter = L"Cleo Script Files | .cs\0*.cs\0\0";
                ofn.lpstrCustomFilter = NULL;
                ofn.nFilterIndex = 1;
                ofn.lpstrFile = fn;
                ofn.nMaxFile = 1024;
                ofn.lpstrFileTitle = NULL;
                ofn.lpstrInitialDir = NULL;
                ofn.lpstrTitle = NULL;
                ofn.Flags = OFN_EXPLORER;
                ofn.lpstrDefExt = NULL;
                ofn.FlagsEx = 0;
                if (GetOpenFileNameW(&ofn))
                {
                    MoveFile(fn, "D:\\");
                }
    
     
    #1300 kiceargy, 8 дек 2016
    Последнее редактирование модератором: 9 дек 2016
    RanGoo нравится это.
  21. Dark_Knight

    Dark_Knight Мое лицо, когда человек верующий.
    Друг

    Регистрация:
    18.03.2013
    Сообщения:
    2.454
    Симпатии:
    724
    Репутация:
    206
    Логируй что возращает GetOpenFileNameW и MoveFile
     
    RanGoo нравится это.
  22. kiceargy

    kiceargy Известный пользователь

    Регистрация:
    09.08.2016
    Сообщения:
    175
    Симпатии:
    40
    Репутация:
    -15
    Это понятно... Вопрос как логировать
     
    RanGoo нравится это.
  23. DarkP1xel

    DarkP1xel #ТГК
    BH Team

    Регистрация:
    17.06.2013
    Сообщения:
    2.205
    Симпатии:
    1.342
    Репутация:
    338
    Лучше не занимайся этим.
     
    RanGoo нравится это.
  24. kiceargy

    kiceargy Известный пользователь

    Регистрация:
    09.08.2016
    Сообщения:
    175
    Симпатии:
    40
    Репутация:
    -15
    сука.. Кто тебя спрашивает?:facepalm:
     
    Последние данные очков репутации:
    DarkP1xel: -3 Очки (Меня никто не спрашивает - вижу дауна, пишу об этом не стесняясь.) 9 дек 2016
    RanGoo нравится это.
  25. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Очень нубский вопрос: максимум, к примеру, может быть 32 игрока, т.е. 32 объекта структуры игрока. Читаю циклом все. Если какого-то игрока нет, то игру нахер крашит. Как попытаться прочитать значение по опред. адресу?
    Например, в client_dll + 0x4AC5E94 лежит моя стр-ра, дальше по адресам client_dll + 0x4AC5E94 + 0x10*i находятся стр-ры других игроков. Пробовал проверять через иф, не помогает вроде, да и хз, должно ли.
    Пробовал что-то такое:
    
    for (short i(0); i < 32; i++)   
                if (client_dll + 0x4AC5E94 + 0x10 * i != NULL)
                {
                    x = *(float*)(0xa0 + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                    y = *(float*)(0xa0 + 0x4 + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                    z = *(float*)(0xa0 + 0x8 + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));//высота
                    alpha = *(float*)(0x128 + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                    beta = *(float*)(0x12c + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                    hp = *(int*)(0xfc + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                    team = *(short*)(0xf0 + *(DWORD*)(client_dll + 0x4AC5E94 + 0x10 * i));
                }
    
    пс на самом деле, вак - не такая уж страшная штука, немного про него порасспрашивал
    [​IMG]
     
    RanGoo нравится это.
  26. Dark_Knight

    Dark_Knight Мое лицо, когда человек верующий.
    Друг

    Регистрация:
    18.03.2013
    Сообщения:
    2.454
    Симпатии:
    724
    Репутация:
    206
    Получай сначала количество игроков на сервере. Потом уже юзай цикл.
     
    RanGoo нравится это.
  27. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Хотел так сделать, но там, вроде, не всегда адресация по порядку идет
    Да и в любом случае, как можно проверить указатель?
     
    #1307 p1cador, 10 дек 2016
    Последнее редактирование: 10 дек 2016
    RanGoo нравится это.
  28. FYP

    FYP админ какой-то

    Регистрация:
    09.03.2013
    Сообщения:
    1.113
    Симпатии:
    1.959
    Репутация:
    736
    if (*(intptr_t*)(client_dll + 0x4AC5E94 + 0x10 * i) != NULL)

    советую повыпиливать всю эту хуету с оффсетами и заменить их структурами и массивами - это избавит от лишней головной боли.
    а для каких-то отдельных значений можно использовать, например, такое: https://gist.github.com/THE-FYP/81d68e85a198b01b911ff6aa7197910b
     
    RanGoo и p1cador нравится это.
  29. AlexDrift

    AlexDrift Активный пользователь

    Регистрация:
    12.04.2013
    Сообщения:
    39
    Симпатии:
    14
    Репутация:
    7
    [m0d sa]При телепортировании ко всем игрокам цикл находит только ид 0. В чем проблема может быть?
     
    RanGoo нравится это.
  30. BlackKnigga

    Проверенный

    Регистрация:
    10.01.2016
    Сообщения:
    616
    Симпатии:
    140
    Репутация:
    66
    Код
     
    RanGoo и AlexDrift нравится это.
  31. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Как проверить кнопку на однократное нажатие?
    Желательно без огромных хуков клавиатуры.
     
    #1311 p1cador, 25 дек 2016
    Последнее редактирование: 25 дек 2016
    RanGoo нравится это.
  32. Dark_Knight

    Dark_Knight Мое лицо, когда человек верующий.
    Друг

    Регистрация:
    18.03.2013
    Сообщения:
    2.454
    Симпатии:
    724
    Репутация:
    206
    Можно через событие WM_KEYUP в сообщениях окна.
     
    RanGoo и p1cador нравится это.
  33. iAmerican

    Проверенный

    Регистрация:
    17.02.2014
    Сообщения:
    350
    Симпатии:
    70
    Репутация:
    15
    Для работы с кнопками можно использовать метод GetAsyncKeyState(Байт_код), но с ней иногда бывают проблеммы(залипание, фантомное срабатывание иногда просто не действует), поэтому опишем свою функцию.
    Прототип:
    BOOL  State_Key(int Key,DWORD dwTimeOut);
    Key - байт код клавиши
    dwTimeOut - время до возможности повторного действия в Мсек(не совсем точное определение)

    Определяем структуру.
    static struct _Keys
    {
    bool        bPressed;
    DWORD       dwStartTime;
    }kPressingKeys[256];
    функа :
    BOOL  State_Key(int Key,DWORD dwTimeOut)
    {
    if(HIWORD(GetKeyState(Key)))
    {
      if(!kPressingKeys[Key].bPressed || (kPressingKeys[Key].dwStartTime && (kPressingKeys[Key].dwStartTime + dwTimeOut) <= GetTickCount()))
      {
       kPressingKeys[Key].bPressed = TRUE;
       if( dwTimeOut > NULL )
        kPressingKeys[Key].dwStartTime = GetTickCount();
       return TRUE;
      }
    }
    else
      kPressingKeys[Key].bPressed = FALSE;
    return FALSE;
    }
    Ставишь в функе время, секунд 15 , думаю хватит.

    Автор "крайслер"
    Взято с zhyk.ru.

    p.s. делал как то без времени , когда запаривался по поводу этого вопроса , но так как все свои сурсы проебал , не помню уже.
     
    RanGoo и p1cador нравится это.
  34. Jadson

    Jadson Пользователь

    Регистрация:
    26.12.2016
    Сообщения:
    24
    Симпатии:
    6
    Репутация:
    0
    Кто нибудь компилил C++ для SAMPFUNCS на Ubuntu? У меня с инклудами проблема, нашел выход только поставить виртуалку и скачать VC 2012
     
    RanGoo нравится это.
  35. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26.10.2013
    Сообщения:
    2.668
    Симпатии:
    1.660
    Репутация:
    438
    mingw, winegcc, но нет нормального ассемблера
     
    RanGoo нравится это.
  36. Jadson

    Jadson Пользователь

    Регистрация:
    26.12.2016
    Сообщения:
    24
    Симпатии:
    6
    Репутация:
    0
    Понял, а через CLion кто-то пробовал компилировать? Мне как то продукты JetBrains по душе, использую их давно, VS в новинку и не совсем привычно.
     
    RanGoo нравится это.
  37. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26.10.2013
    Сообщения:
    2.668
    Симпатии:
    1.660
    Репутация:
    438
    Тебе IDE нужна или компилятор?
     
    RanGoo нравится это.
  38. Jadson

    Jadson Пользователь

    Регистрация:
    26.12.2016
    Сообщения:
    24
    Симпатии:
    6
    Репутация:
    0
    Ну IDE с компилятором хотелось бы, посмотрел что в СLion можно компилятор настроить, но пока буду в VS все делать, мне его достаточно
     
    RanGoo нравится это.
  39. p1cador

    p1cador tvoy ded
    Проверенный

    Регистрация:
    19.03.2014
    Сообщения:
    164
    Симпатии:
    158
    Репутация:
    53
    Как ввести опред. текст в текстбокс и нажать кнопку ок из стороннего консольного приложения?
    Screenshot_1.png
    Сделал
    HWND window = FindWindowEx(NULL, NULL, NULL, "Channel Password");
    Получаю HWND, что делать с ним дальше - хз.
    Пробовал чисто протестировтаь
    SendMessage(window, WM_QUIT, 0, 0);
    PostMessage(window, WM_QUIT, 0, 0);
    Ноль реакции
    Ссылки на гайды приветствуются
     
    #1319 p1cador, 27 дек 2016
    Последнее редактирование: 28 дек 2016
    RanGoo нравится это.
  40. Woofing Giraffe

    Woofing Giraffe Известный пользователь

    Регистрация:
    14.06.2015
    Сообщения:
    379
    Симпатии:
    45
    Репутация:
    14
    wcex.hInstance = hInstance;
    wcex.hIcon = (HICON) ::LoadImage(hInstance, L"icon1.ico", IMAGE_ICON, 32, 32, LR_SHARED);
    Пытаюсь установить иконку для приложения. Handle получается равен нулю. Что не так то?
     
    RanGoo нравится это.