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

Cannot convert 'const wchar_t *' to 'const char *' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
funk_ua
 Аватар для funk_ua
1 / 1 / 0
Регистрация: 27.08.2012
Сообщений: 54
03.09.2012, 15:40     Cannot convert 'const wchar_t *' to 'const char *' #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    HMODULE hMod=GetModuleHandle(NULL);
    if(!hMod) {
    }
    HRSRC hRes=FindResource(hMod,"acc.dll",RT_RCDATA);
    if(!hRes){
    }
    HGLOBAL hGlob=LoadResource(hMod,hRes);
    if(!hGlob) {
    }
    BYTE *lpbArray=(BYTE*)LockResource(hGlob);
    if(!lpbArray) {
    }
 
 
    int size=SizeofResource(NULL,hRes);
    DWORD wr;
    HRSRC f=CreateFile(L"acc.dll",GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    WriteFile(f,LoadResource(NULL,res),size,&wr,NULL);
    CloseHandle(f);
На строке
C++
1
    HRSRC f=CreateFile(L"awc.dll",GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
Выдаёт ошибку . Если убрать L, то ошибка Cannot convert 'void *' to 'HRSRC__ *'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.09.2012, 15:46     Cannot convert 'const wchar_t *' to 'const char *' #2
в настройках проекта поставьте Multibyte characterset
в Visual Studio Project->Properties->General->Characterset
funk_ua
 Аватар для funk_ua
1 / 1 / 0
Регистрация: 27.08.2012
Сообщений: 54
03.09.2012, 15:58  [ТС]     Cannot convert 'const wchar_t *' to 'const char *' #3
Цитата Сообщение от panicwassano Посмотреть сообщение
в настройках проекта поставьте Multibyte characterset
в Visual Studio Project->Properties->General->Characterset
Я в C++ Builder.
Multi-byte character support? Поставил true.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
03.09.2012, 16:18     Cannot convert 'const wchar_t *' to 'const char *' #4
Cannot convert 'void *' to 'HRSRC__ *'
Тут явно речь о возвращаемом значении, так как слева у тебя
C++
1
2
typedef HRSRC__* HRSRC;
HRSRC f;
А возвращаемое значение у HANDLE CreateFile наверняка алиас для void*.
Попробуй static_cast< HRSRC >( CreateFile( ... ) );
funk_ua
 Аватар для funk_ua
1 / 1 / 0
Регистрация: 27.08.2012
Сообщений: 54
03.09.2012, 16:38  [ТС]     Cannot convert 'const wchar_t *' to 'const char *' #5
Спасибо! Но стесняюсь спросить, что мне теперь писать в WriteFile и CloseHandle?
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
03.09.2012, 23:54     Cannot convert 'const wchar_t *' to 'const char *' #6
Заменить HRSRC на HANDLE у f.

Добавлено через 6 часов 54 минуты
Можно еще HFILE по идее, это одно и то же.
Yandex
Объявления
03.09.2012, 23:54     Cannot convert 'const wchar_t *' to 'const char *'
Ответ Создать тему
Опции темы

Текущее время: 22:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru