Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lagilo
2 / 2 / 0
Регистрация: 17.04.2014
Сообщений: 127
#1

Аргумент типа "LPCWSTR" несовместим с параметром типа "LPCSTR" - C++

05.10.2015, 13:12. Просмотров 909. Ответов 12
Метки нет (Все метки)

Выводит ошибку в условии. Если включать мультикодировку, то выводится одна ошибка, если Юникод, то другая. Как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
BOOL CreateGLWindow( LPCWSTR title, int width, int height, int bits, bool fullscreenflag )
{
//********
if( !( hWnd = CreateWindowEx(  dwExStyle,          // Расширенный стиль для окна
    ("OpenGL"),          //если включить кодировку Юникода, то тут появляется ошибка. _T("OpenGL") - пишет
                                  //"идентификатор "_T" не определен"
    title,      //если включить мультикодировку, то тут выводит ошибку: "аргумент типа "LPCWSTR" несовместим с параметром типа "LPCSTR""
    WS_CLIPSIBLINGS |  
    WS_CLIPCHILDREN |   
    dwStyle,     
    0, 0, 
    WindowRect.right-WindowRect.left,  
    WindowRect.bottom-WindowRect.top,  
    NULL,  
    NULL,
    hInstance,  
    NULL ) ) ) 
{
    KillGLWindow();
    MessageBox( NULL, "Window Creation Error.", "ERROR", MB_OK | MB_ICONEXCLAMATION );
    return false;
}
//**********
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2015, 13:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргумент типа "LPCWSTR" несовместим с параметром типа "LPCSTR" (C++):

Ошибка аргумент типа "char" несовместим с параметром типа "LPCSTR" - C++
char result; result=printf("%d %d", "test.php?id=",id); HINTERNET hHttpRequest = HttpOpenRequest( hHttpSession, "GET", result,...

Аргумент типа "const char*" несовместим с параметром типа "LPCWSTR" - C++
хочу запустить paint с visual studio но выдает ошибку под словами open, filename, строка 6#include <iostream> #include <windows.h> ...

Аргумент типа "char *" несовместим с параметром типа "LPCWSTR" - C++
Что такое и с чем его едят 1 IntelliSense: аргумент типа "char *" несовместим с параметром типа...

Аргумент типа "HDC" несовместим с параметром типа const PAINTSTRUCT - C++
#include <Windows.h> int main(void) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); HPEN p1, p2, p3, p4, p0; p1 =...

Аргумент типа "unsigned char*" несовместим с параметром типа "const char*" - C++
int f(unsigned char s, unsigned char q) { N = strlen(s); //Ошибка тут... M = strlen(q); //...и тут Как исправить?

Аргумент типа "int **" несовместим с параметром типа "int (*)[26]" - C++
Здравствуйте. Я не могу передать динамический двумерный массив в функцию. Как это можно сделать? И как можно нормально объявить массив ?...

12
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,646
Записей в блоге: 3
Завершенные тесты: 1
05.10.2015, 13:24 #2
Макросы
_T
_TEXT
0
Lagilo
2 / 2 / 0
Регистрация: 17.04.2014
Сообщений: 127
05.10.2015, 13:26  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Макросы
_T
_TEXT
Я так делал, но пишет, что "идентификатор не найден".
Я ведь правильно делаю?
C++
1
_T("OpenGL")
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
05.10.2015, 13:30 #4
Lagilo, включи мультибайтовые строки, а не Юникод и не мультикодировку (не понял, что это такое, правда) И пиши обычные строки в кавычках - всё заработает!
0
Lagilo
2 / 2 / 0
Регистрация: 17.04.2014
Сообщений: 127
05.10.2015, 13:34  [ТС] #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Lagilo, включи мультибайтовые строки, а не Юникод и не мультикодировку (не понял, что это такое, правда) И пиши обычные строки в кавычках - всё заработает!
Под мультикодировкой как раз имею в виду мультибайтовую) Пардон)
Когда включаю мультибайтовую кодировку, то выводится ошибка "аргумент типа "LPCWSTR" несовместим с параметром типа "LPCSTR"":
C++
1
2
3
if( !( hWnd = CreateWindowEx(  dwExStyle,          // Расширенный стиль для окна
    "OpenGL",
    title,         //ОШИБКА выводится тут
0
UnknownSoldier
571 / 92 / 37
Регистрация: 08.04.2015
Сообщений: 209
05.10.2015, 13:43 #6
А что мешает описать первый параметр CreateGLWindow() с типом LPCSTR, а не LPCWSTR? Функция ведь своя собственная, не импорт из чужой библиотеки.
1
Lagilo
2 / 2 / 0
Регистрация: 17.04.2014
Сообщений: 127
05.10.2015, 14:05  [ТС] #7
Цитата Сообщение от UnknownSoldier Посмотреть сообщение
А что мешает описать первый параметр CreateGLWindow() с типом LPCSTR, а не LPCWSTR? Функция ведь своя собственная, не импорт из чужой библиотеки.
Теперь выводит ошибку линковки..
error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long,char const *)" (?WndProc@@YGJPAUHWND__@@IIJPBD@Z) в функции "int __cdecl CreateGLWindow(char const *,int,int,int,bool)" (?CreateGLWindow@@YAHPBDHHH_N@Z)

Вот мой WndProc:
C++
1
LRESULT  CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM , LPCSTR);
0
Людвиг Бодмер
349 / 348 / 133
Регистрация: 29.03.2013
Сообщений: 858
Завершенные тесты: 4
05.10.2015, 14:07 #8
Lagilo,
C++
1
#include <tchar.h>
для макроса _T() подключи
0
UnknownSoldier
571 / 92 / 37
Регистрация: 08.04.2015
Сообщений: 209
05.10.2015, 14:33 #9
У WndProc должно быть 4 параметра, 5-ый лишний.
0
Lagilo
2 / 2 / 0
Регистрация: 17.04.2014
Сообщений: 127
05.10.2015, 14:47  [ТС] #10
Да, это я уже знаю) Просто забыл исправить, прежде чем сюда скопировал)
C++
1
2
3
4
5
6
7
8
9
LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM);       // Прототип функции WndProc
BOOL CreateGLWindow( LPCSTR title, int width, int height, int bits, bool fullscreenflag )
{
//*******
WNDCLASS  wc;                // Структура класса окна
//*******
wc.lpfnWndProc      = (WNDPROC) WndProc; //тут выводит ошибку линковки о неразрешенном внешнем символе.
//*******
}
0
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
05.10.2015, 14:54 #11
Много тем создано с примерно таким содержанием: а как древние char-строки использовать с WinAPI, который уже давно работает на Unicode? Спрашивается, зачем? Пора забыть уже про 1251 и пользоваться WCHAR.
0
UnknownSoldier
571 / 92 / 37
Регистрация: 08.04.2015
Сообщений: 209
05.10.2015, 15:02 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Lagilo, а определение WndProc есть, или у вас только объявление? Без определения будет ошибка компоновки.

nmcf, это кому как удобнее. Я не пишу мультиязычных программ, и меня обычные строки более чем устраивают.
0
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
05.10.2015, 15:18 #13
Цитата Сообщение от UnknownSoldier Посмотреть сообщение
Я не пишу мультиязычных программ
Это не важно. Русский-то используешь? Даже если нет, пойми, что Windows внутри на юникоде давно, а это просто для совместимости оставили.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 15:18
Привет! Вот еще темы с ответами:

Ошибка "аргумент типа char несовместим с параметром типа char*" - C++
#include &lt;iostream&gt; using namespace std; const int N=4; //размер очереди struct Queue { int data; //массив данных char...

"Аргумент типа char несовместим с параметром типа const char" - C++
Программа должна перевести все символы до * в число,но что то пошло не так. P.S прошу не ругать. #include &lt;stdio.h&gt; #include...

параметром типа "LPCWSTR" - C++
// Zagolovotsnyj_loaded_ library.cpp // compile with: /EHsc /LD #include &quot;Windows.h&quot; #include &quot;Zagolovotsnyj_loaded_ library.h&quot; ...

Error: значение типа "const char" нельзя присвоить сущности типа "double" - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt;// using namespace std; void main(void) { const int k=5; int a=10; unsigned int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
05.10.2015, 15:18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru