Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 3

Ошибка E2034 Cannot convert 'wchar_t *' to 'char *'

11.07.2014, 16:02. Показов 6179. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка при компиляции (bcc32error) смотреть скриншот
Установлена последняя версия (С++Builder XE6)
Миниатюры
Ошибка E2034 Cannot convert 'wchar_t *' to 'char *'  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.07.2014, 16:02
Ответы с готовыми решениями:

E2034 Cannot convert 'wchar_t *' to 'char *'
Здравствуйте ! Опять у меня такая же проблема, помогите пожалуйста, уловить в чём тут "собака порылась". В C++ Builder6...

Ошибка: E2034 Cannot convert 'char const[51]' to 'const wchar_t *
Пытаюсь добавить в memo1 название файлов располагающихся в каталоге, в Console Application все отлично, а тут проблема. ...

Ошибка E2034: Cannot convert 'char const[8]' to 'const wchar_t *'
Прошу прощения за свой вопрос, но я никак не пойму где ошибка? использую c++ builder 10 (если это как то связано) выдает следующие...

15
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.07.2014, 17:55
Перед именем в кавычках L добавлять не пробовал?
0
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 3
11.07.2014, 18:15  [ТС]
Перед каким именем добавить L?
Можно по подробней и с примером

Добавлено через 3 минуты
L"Name.exe" так ?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
11.07.2014, 18:26
Цитата Сообщение от abot Посмотреть сообщение
L"Name.exe" так ?
Именно.
0
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 3
11.07.2014, 18:48  [ТС]
Теперь здесь на скобках ошибка такая же
C++
1
2
3
4
void __fastcall TForm1::N2Click(TObject *Sender)
{
Close();
}
Добавлено через 17 минут
E2034 Cannot convert 'wchar_t *' to 'char *'
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
13.07.2014, 15:23
Цитата Сообщение от abot Посмотреть сообщение
Теперь здесь на скобках ошибка такая же
Значит, где-то что-то упустил. Без полного кода никто тебе не поможет...
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
14.07.2014, 08:50
abot, а вы к "open" дописали так же L?
0
Модератор
 Аватар для D1973
9911 / 6448 / 2455
Регистрация: 21.01.2014
Сообщений: 27,374
Записей в блоге: 3
16.07.2014, 08:42
Коллеги, у меня аналогичная проблемка. Вот пример кода...
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String s = "Бла-бла-бла " + Edit1->Text;
  ErrMsg(s.c_str());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, Ch, "Ошибочка!!!", 16);
}
Проект я делал в RAD 2010, там писал так:
C++
1
ErrMsg(s.t_str());
и это работало, хотя где-то читал, что t_str() - это не есть гуд. Сейчас перенес на RAD XE3 и вот - сижу, курю (точнее, не вкуриваю)...

Добавлено через 2 часа 0 минут
Кстати, обнаружил, что если объявить s как AnsiString - все работает...
А как-таки с юникодом быть?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.07.2014, 09:59
D1973,
Решение номер раз
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString s = "Бла-бла-бла " + Edit1->Text;
  ErrMsg( s.c_str() ); // Если так хочется работать с Ansi
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}

Решение номер два
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String s = "Бла-бла-бла " + Edit1->Text;
  ErrMsg( AnsiString( s ).c_str() ); // Если так хочется передавать Ansi
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}

Решение номер три
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  UnicodeString s = "Бла-бла-бла " + Edit1->Text; // Если хочется прям юникод
  ErrMsg( s.c_str() );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(wchar_t *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}

Решение номер четыре
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString s = "Бла-бла-бла " + Edit1->Text; // И Ansi и Unicode
  ErrMsg( WideString( s ).c_bstr() );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(TCHAR *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}

...
Человеческое решение
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String s = "Бла-бла-бла " + Edit1->Text;
  ErrMsgS( s );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsgS( String MsgText )
{
    MessageBox( NULL, MsgText.c_str(), L"Ошибочка!!!", MB_OK | MB_ICONERROR );
}
2
Модератор
 Аватар для D1973
9911 / 6448 / 2455
Регистрация: 21.01.2014
Сообщений: 27,374
Записей в блоге: 3
17.07.2014, 07:01
SatanaXIII, спасибо, но вот ведь какой я занудливый...
Решение номер раз
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString s = "Бла-бла-бла " + Edit1->Text;
  ErrMsg( s.c_str() ); // Если так хочется работать с Ansi
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}
[bcc32 Error] Unit1.cpp(25): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)
[bcc32 Error] Unit1.cpp(25): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')

Решение номер два
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String s = "Бла-бла-бла " + Edit1->Text;
  ErrMsg( AnsiString( s ).c_str() ); // Если так хочется передавать Ansi
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}
[bcc32 Error] Unit1.cpp(25): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)
[bcc32 Error] Unit1.cpp(25): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)

Решение номер три
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  UnicodeString s = "Бла-бла-бла " + Edit1->Text; // Если хочется прям юникод
  ErrMsg( s.c_str() );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}
[bcc32 Error] Unit1.cpp(20): E2034 Cannot convert 'wchar_t *' to 'char *'
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
[bcc32 Error] Unit1.cpp(20): E2342 Type mismatch in parameter 'Ch' (wanted 'char *', got 'wchar_t *')
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
[bcc32 Error] Unit1.cpp(25): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)
[bcc32 Error] Unit1.cpp(25): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)

Решение номер четыре
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString s = "Бла-бла-бла " + Edit1->Text; // И Ansi и Unicode
  ErrMsg( WideString( s ).c_bstr() );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsg(char *Ch)
{
  MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
}
[bcc32 Error] Unit1.cpp(20): E2034 Cannot convert 'wchar_t *' to 'char *'
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
[bcc32 Error] Unit1.cpp(20): E2342 Type mismatch in parameter 'Ch' (wanted 'char *', got 'wchar_t *')
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
[bcc32 Error] Unit1.cpp(25): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)
[bcc32 Error] Unit1.cpp(25): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsg(char *)

Человеческое решение
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String s = "Бла-бла-бла " + Edit1->Text;
  ErrMsgS( s );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ErrMsgS(String MsgText)
{
  MessageBox( NULL, MsgText.c_str(), L"Ошибочка!!!", MB_OK | MB_ICONERROR );
}
[bcc32 Error] Unit1.cpp(25): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsgS(UnicodeString)
[bcc32 Error] Unit1.cpp(25): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(24): parsing: void _fastcall TForm1::ErrMsgS(UnicodeString)

Да и не подходит мне оно, т.к. в фунцию передается String, а надо char*. Просто хочу эту функцию (не конкретно эту, просто минимальный пример сделал с ошибкой) впихать в DLL, не охота заморачиваться с дополнительными библиотеками типа borlndmm.dll при передаче String в параметре.


Добавлено через 1 минуту

Не по теме:

SatanaXIII, а не подскажешь, как делать спойлеры с более информативным заголовком, чем "Кликните здесь..."?

0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
17.07.2014, 07:24
Цитата Сообщение от D1973 Посмотреть сообщение
Кстати, обнаружил, что если объявить s как AnsiString - все работает...
Как так, то работало, а-то теперь перестало вдруг?

Не по теме:

Решение загадки под катом;)

Вот так:

1
Модератор
 Аватар для D1973
9911 / 6448 / 2455
Регистрация: 21.01.2014
Сообщений: 27,374
Записей в блоге: 3
17.07.2014, 07:59
Цитата Сообщение от D1973 Посмотреть сообщение
C++
1
MessageBox(NULL, String( Ch ).c_str() , L"Ошибочка!!!", 16);
Так предложил SatanaXIII и это вызывает ошибку, которая "Решение номер раз"
Вот так работать будет:
C++
1
MessageBox(NULL, Ch, "Ошибочка!!!", 16);

Не по теме:

Вот за это спасибо
:good:



Добавлено через 10 минут
Кстати, так же лечится "Решение номер два"
Остальные продолжают ругаться.
0
17.07.2014, 08:42

Не по теме:

Это все потому что я не шарю. :pardon:

0
Модератор
 Аватар для D1973
9911 / 6448 / 2455
Регистрация: 21.01.2014
Сообщений: 27,374
Записей в блоге: 3
17.07.2014, 08:55

Не по теме:

SatanaXIII, чтобы я так жил, как ты шаришь


А если серьезно, очень хочется понять, что не так... Все "решения" проверил - результат выше. Что не так? Нет каких-то инклюдов? Проблема в опциях проекта/среды? Фаза Луны не та? Руки у меня кривые? Или "руки..." на первое место списка поставить?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
17.07.2014, 10:49
D1973, очень похоже, что Project->Options->_TCHAR maps to выставлено в char, а не в wchar_t

По крайней мере у меня на XE2 именно такие ошибки и выдаются, когда я переключаюсь на ANSI-проект вместо Юникодного...
1
Модератор
 Аватар для D1973
9911 / 6448 / 2455
Регистрация: 21.01.2014
Сообщений: 27,374
Записей в блоге: 3
19.07.2014, 10:46
Спасибо, заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2014, 10:46
Помогаю со студенческими работами здесь

E2034 Cannot convert 'wchar_t *' to 'const char *' Full parser context
ShellExecute(Handle, "open", "http://cubook.supernew.org/", 0, 0, SW_SHOWNORMAL); - нашел как запустить браузер с ссылью внутри. А вот...

Ошибка - Cannot convert 'wchar_t *' to 'const char *'
В событии компонента TStringGrid OnDrawCell перерисовываю ячейки. Текст вывожу так: DrawText(Canvas->Handle, Cells.t_str(),...

[bcc32 Error] Unit324.cpp(125): E2034 Cannot convert 'UnicodeString' to 'wchar_t'
XE8, как конвертировать UnicodeString в String, если пишу AnsiString вместо String выдает ошибку Cannot convert 'UnicodeString' to 'char',...

выдает ошибку :[C++ Error] Unit1.cpp(30): E2034 Cannot convert 'char' to 'char *' не понимаю в чем дело
//Дано предложение. Найти наибольшее количество идущих подряд пробелов #include <vcl.h> #include <iostream> #pragma...

E2034 Cannot convert 'Set<int,0,255>' to 'unsigned char *'
Unit1.cpp(32): E2034 Cannot convert 'Set&lt;int,0,255&gt;' to 'unsigned char *' выполнение операции #define Unit1__0 (System::Set&lt; int,...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru