Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Есть такой пример, взятый из этого же форума, правда, многолетней давности: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Пытаюсь скомпилировать его в VS 2008 и получаю такую ошибку: Код: plaintext 1. Попробовал использовать reinterpret_cast: Код: plaintext 1. Но reinterpert_cast<const char*>(pe.szExeFile) возвращает только первый символ pe.szExeFile, естественно, это не то, что мне нужно. Как решить проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 10:13 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonКак решить проблему?варианты: - пересобрать всё без использования юникода - WideCharToMutlyByte или в обратную сторону ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 10:19 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
CEMb- пересобрать всё без использования юникода А как это сделать? Сейчас файлы сохранены в кодировке Windows-1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 10:43 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Открой для себя свойства проекта. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 10:59 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Тебе надо в проекте указать "Use multibyte character set" вместо "Use unicode", в деталях это должно повлечь за собой определение макроса MBCS вместо UNICODE. было -DUNICODE должно стать -DMBCS Затем нужно весь проект очистить и собрать заново, перекомпилировать и перелинковать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 11:06 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Да, это всё, конечно, если ты НЕ собираешься использовать UNICODE, максимум -- кодировки типа cp1251. Кроме этого, хорошо бы использовать character mapping везде в программе. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 11:10 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
MasterZivТебе надо в проекте указать "Use multibyte character set" вместо "Use unicode", ... Затем нужно весь проект очистить и собрать заново, перекомпилировать и перелинковать. Тогда появляется куча ошибок в других частях проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 11:55 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonТогда появляется куча ошибок в других частях проекта.->MasterZiv Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:00 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
CEMbAbejonТогда появляется куча ошибок в других частях проекта.->MasterZiv Код: plaintext 1. 2. 3. 4. Тогда я получаю такую ошибку: 1>c:\users\администратор\documents\visual studio 2008\projects\processlisttest\processlisttest\processlisttest\processlisttest.cpp(19) : error C2664: wcscmp: невозможно преобразовать параметр 2 из 'const char *const ' в 'const wchar_t *' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции Если же я указываю тип входного параметра const wchar_t * const, то получаю такое сообщение об ошибке: 1>c:\users\администратор\documents\visual studio 2008\projects\processlisttest\processlisttest\processlisttest\processlisttest.cpp(34) : error C2664: IsProcessRun: невозможно преобразовать параметр 1 из 'const char [11]' в 'const wchar_t *const ' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:30 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Abejonневозможно преобразовать параметр 1 из 'const char [11]' в 'const wchar_t *const RTFM wide string literal Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:41 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonТогда я получаю такую ошибку: Код: plaintext 1. -> Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:47 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Выше уже писали 20660476 Еще раз спрошу: ты юникодный проект умышленно используешь или только потому что MSVC такой создает по-умолчанию? Если второе, то в свойствах проекта переключи General - Charaster set = Not set и твой исходный код скомпилируется как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:48 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Dima TВыше уже писали 20660476 Еще раз спрошу: ты юникодный проект умышленно используешь или только потому что MSVC такой создает по-умолчанию? Если второе, то в свойствах проекта переключи General - Charaster set = Not set и твой исходный код скомпилируется как есть. Проект мне такой достался. В конфиге указано использование юникода. Мне этот проект нужно доработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:53 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
CEMbAbejonТогда я получаю такую ошибку: Код: plaintext 1. -> Код: plaintext 1. Получаю такую ошибку: 1>c:\users\администратор\documents\visual studio 2008\projects\processlisttest\processlisttest\processlisttest\processlisttest.cpp(34) : error C2664: IsProcessRun: невозможно преобразовать параметр 1 из 'const char [11]' в 'const TCHAR *const ' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции Т.е. проблема в том, что получаются разные типы у первого и второго параметра, я так понимаю. Как их привести к одному типу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:56 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAbejonневозможно преобразовать параметр 1 из 'const char [11]' в 'const wchar_t *const RTFM wide string literal И что с этим делать? Посмотрел MSDN на эту тему. Честно сказать, ничего не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 12:59 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonКак их привести к одному типу?везде заменить char на TCHAR TCHAR и _tsc-функции - это макросы, которые в зависимости от unicode/mulibyte разворачиваются в соответствующие типы и функции и освобождают от забот по переходу всего кода с/на юникод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 13:07 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonCEMbпропущено... Код: plaintext 1. -> Код: plaintext 1. Получаю такую ошибку: 1>c:\users\администратор\documents\visual studio 2008\projects\processlisttest\processlisttest\processlisttest\processlisttest.cpp(34) : error C2664: IsProcessRun: невозможно преобразовать параметр 1 из 'const char [11]' в 'const TCHAR *const ' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции Т.е. проблема в том, что получаются разные типы у первого и второго параметра, я так понимаю. Как их привести к одному типу? Ты как вызываешь IsProcessRun() ? Если Код: plaintext 1. то добавь Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 13:11 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Dima T, Спасибо, друже! Вот это: Dima T Код: plaintext 1. сработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 13:20 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Dima Tто добавь Код: plaintext 1. А, да, точно! Все константы надо заменить c "some" на _T("some") или, если не лень, на более универсальную TEXT("some") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 13:22 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
Dima T, Вот такой вариант рабочий: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. И вызывать нужно вот так: Код: plaintext 1. Всем большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 13:24 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonMasterZivТебе надо в проекте указать "Use multibyte character set" вместо "Use unicode", ... Затем нужно весь проект очистить и собрать заново, перекомпилировать и перелинковать. Тогда появляется куча ошибок в других частях проекта. Ну и чего, предлагаешь нам все их исправлять ? Учить программировать, читай книги, читай документацию, исправляй... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 14:25 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonТ.е. проблема в том, что получаются разные типы у первого и второго параметра, я так понимаю. Как их привести к одному типу? Прежде всего, тебе нужно ИСПОЛЬЗОВАТЬ везде ОДИН И ТОТ ЖЕ ТИП. Я тебе уже писал, везеде TCHAR и производные от него типы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 14:27 |
|
||
|
Ошибка приведения типа строки
|
|||
|---|---|---|---|
|
#18+
AbejonDima T, Спасибо, друже! Вот это: Dima T Код: plaintext 1. сработало! Если учесть, что вроде бы как мы хотим наоборот перейти с UNICODE на MBCS, то это -- не совет, а медвежья услуга. В любом случае, UNICODE или MBCS, НЕ ДОЛЖНО БЫТЬ в коде явных литералов строк с или без L"", все должны быть _T(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 14:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39492329&tid=2018119]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 311ms |

| 0 / 0 |
