Кодировка.

Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2016
Сообщения
50
Реакции[?]
8
Поинты[?]
0
Можно ли как то использовать Многобайтовую кодировку в одном файле, а в остальных останется юникод (он и стоит в настройках проекта)?
У меня такая проблема что: значение char* не совместим с параметром типа "LPCWSTR" и это решается если поставить многобайтовую кодировку в настройках проекта, но тогда у меня будут ошибки во всех файлах кроме этого.

я гуглил, кто то писал про #include <tchar.h> и использовать THCAR. - хз, все перепробовал и ничего.
еще про #ifdef_UNICODE но мне нужно многобайтовую

скриншот ошибки:
Пожалуйста, авторизуйтесь для просмотра ссылки.


как ее исправить?
 
я выблядок
Забаненный
Статус
Оффлайн
Регистрация
15 Июн 2017
Сообщения
607
Реакции[?]
352
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Точно не уверен (я тупой, много раз говорил), но вроде так можно:
Код:
char* gangshit = L"essketit";
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
999
Реакции[?]
1,209
Поинты[?]
3K
первая ссылка в гугле:
Код:
/* wchar_t to char */
char* wtoc(const wchar_t* w, size_t max)
{
  char* c = new char[max];
  wcstombs(c,w,max);
  return c;
}

/* char to wchar_t */
wchar_t* ctow(const char* c, size_t max)
{
  wchar_t* w = new wchar_t[max];
  mbstowcs(w,c,max);
  return w;
}
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2016
Сообщения
50
Реакции[?]
8
Поинты[?]
0
Код:
#include "hMain.h"
#include "sdk.h"


int Width = 800;
int Height = 600;

const MARGINS Margin = { 0, 0, Width, Height };

char lWindowName[256] = "Overlay";
HWND hWnd;

char tWindowName[256] = "Counter-Strike:Global Offensive"; 
HWND tWnd;
RECT tSize;

MSG Message;

LRESULT CALLBACK WinProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
    switch (Message)
    { 
    case WM_PAINT:
        Render();
        break;

    case WM_CREATE:
        DwmExtendFrameIntoClientArea(hWnd, &Margin);
        break;

    case WM_DESTROY:
        PostQuitMessage(1);
        return 0;

    default:
        return DefWindowProc(hWnd, Message, wParam, lParam);
        break;
    }
    return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hSecInstance, LPSTR nCmdLine, INT nCmdShow)
{

    CreateThread(0, 0, (LPTHREAD_START_ROUTINE)SetWindowToTarget, 0, 0, 0);

    WNDCLASSEX wClass;
    wClass.cbClsExtra = NULL;
    wClass.cbSize = sizeof(WNDCLASSEX);
    wClass.cbWndExtra = NULL;
    wClass.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(0, 0, 0));
    wClass.hCursor = LoadCursor(0, IDC_ARROW);
    wClass.hIcon = LoadIcon(0, IDI_APPLICATION);
    wClass.hIconSm = LoadIcon(0, IDI_APPLICATION);
    wClass.hInstance = hInstance;
    wClass.lpfnWndProc = WinProc;
    wClass.lpszClassName = lWindowName;
    wClass.lpszMenuName = lWindowName;
    wClass.style = CS_VREDRAW | CS_HREDRAW;

    if(!RegisterClassEx(&wClass))
        exit(1);

    tWnd = FindWindow(0, tWindowName);
    if (tWnd)
    {
        GetWindowRect(tWnd, &tSize);
        Width = tSize.right - tSize.left;
        Height = tSize.bottom - tSize.top;
        hWnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_LAYERED, lWindowName, lWindowName,  WS_POPUP, 1, 1, Width, Height, 0, 0, 0, 0);
        SetLayeredWindowAttributes(hWnd, 0, 1.0f, LWA_ALPHA);
        SetLayeredWindowAttributes(hWnd, 0, RGB(0, 0, 0), LWA_COLORKEY);
        ShowWindow( hWnd, SW_SHOW);
    }

    DirectXInit(hWnd);

    for (;;)
    {
        if(PeekMessage(&Message, hWnd, 0, 0, PM_REMOVE))
        {
            DispatchMessage(&Message);
            TranslateMessage(&Message);
        }
        Sleep(1);
    }
    return 0;
}

void SetWindowToTarget()
{
    while(true)
    {
        tWnd = FindWindow(0, tWindowName);
        if (tWnd)
        {
            GetWindowRect(tWnd, &tSize);
            Width = tSize.right - tSize.left;
            Height = tSize.bottom - tSize.top;
            DWORD dwStyle = GetWindowLong(tWnd, GWL_STYLE);
            if(dwStyle & WS_BORDER)
            {
                tSize.top += 23;
                Height -= 23;
            }
            MoveWindow(hWnd, tSize.left, tSize.top, Width, Height, true);
        }
        else
        { 
            exit(1);
        }
        Sleep(100);
    }
}
как это использовать тут аа ебать я тупой

первая ссылка в гугле:
Код:
/* wchar_t to char */
char* wtoc(const wchar_t* w, size_t max)
{
  char* c = new char[max];
  wcstombs(c,w,max);
  return c;
}

/* char to wchar_t */
wchar_t* ctow(const char* c, size_t max)
{
  wchar_t* w = new wchar_t[max];
  mbstowcs(w,c,max);
  return w;
}
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
999
Реакции[?]
1,209
Поинты[?]
3K
Сверху Снизу