Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

трабл с visual c++ 2005

2.4K
19 июня 2005 года
Lenin
51 / / 05.12.2004
Собственно такая проблема:visual c++ 2005 express edition выдает такое сообщение "cannot convert parameter 1 from 'char [2]' to 'LPCWSTR'",при компиляции вот этого кода:
void main()
{
int i=0;
int name=65;
char rName[2];
rName[0]=name;
rName[1]=0;
WIN32_FIND_DATA dF;
HANDLE findH=FindFirstFile(rName,&dF);
}
хотя в 6-й версии все проходило на ура.
Может кто знакт почему?
3
19 июня 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Lenin
Собственно такая проблема:visual c++ 2005 express edition выдает такое сообщение "cannot convert parameter 1 from 'char [2]' to 'LPCWSTR'",при компиляции вот этого кода:
void main()
{
int i=0;
int name=65;
char rName[2];
rName[0]=name;
rName[1]=0;
WIN32_FIND_DATA dF;
HANDLE findH=FindFirstFile(rName,&dF);
}
хотя в 6-й версии все проходило на ура.
Может кто знакт почему?



Тебе же компилятор все объяснил.
Он не смог сконвертировать тип char[2] в тип LPCWSTR, т.е. в указатель на константу WCHAR.
Либо компилируй в Multi-Byte Character Set, либо используй WCHAR[2] вместо char[2].

А вообще-то твой код очччень странный...
Что он делать то должен?

2.4K
20 июня 2005 года
Lenin
51 / / 05.12.2004
Цитата:
Originally posted by Green
Тебе же компилятор все объяснил.
Он не смог сконвертировать тип char[2] в тип LPCWSTR, т.е. в указатель на константу WCHAR.
Либо компилируй в Multi-Byte Character Set, либо используй WCHAR[2] вместо char[2].

А вообще-то твой код очччень странный...
Что он делать то должен?


да нет это-только кусок кода.
то что он не смог сконвертировать char в lpcwstr я понял:),но если делать HANDLE findH=FindFirstFile((lpcwstr)rName,&dF); то он нифига не находит ни одного файла.вообще странно ведь LPCWSTR-вроде универсалҗного указателя.
И еще:а как компилировать в Multi-Byte Character Set

406
20 июня 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by Lenin
да нет это-только кусок кода.
то что он не смог сконвертировать char в lpcwstr я понял:),но если делать HANDLE findH=FindFirstFile((lpcwstr)rName,&dF); то он нифига не находит ни одного файла.вообще странно ведь LPCWSTR-вроде универсалҗного указателя.


А что он должен находить по твоему? Файл с именем из одной буквы А? Может у тебя его нет в текущей директории?
И еще не умее обращяться с Unicode строками убери директиву где то у тебя в проекте вида:
#define _UNICODE
или
#define _MBCS
тогда большинство api функций перестанет требовать от тебя строки Multi-Byte Character а будет использовать ASCII.
Так как большиство функций системы описано вида

WINBASEAPI
HANDLE
WINAPI
FindFirstFileA(
IN LPCSTR lpFileName,
OUT LPWIN32_FIND_DATAA lpFindFileData
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileW(
IN LPCWSTR lpFileName,
OUT LPWIN32_FIND_DATAW lpFindFileData
);
#ifdef UNICODE
#define FindFirstFile FindFirstFileW
#else
#define FindFirstFile FindFirstFileA
#endif // !UNICODE

Как видиш компилятор на основе директивы #define _UNICODE может решит использовать FindFirstFileW вместо FindFirstFileA,а вот тут то у тебя и проблемы.

Цитата:

И еще:а как компилировать в Multi-Byte Character Set



MultiByteToWideChar и др.

2.4K
21 июня 2005 года
Lenin
51 / / 05.12.2004
Цитата:
Originally posted by vitaly2003s
А что он должен находить по твоему? Файл с именем из одной буквы А?


Ну вообще-то-да:)
Просто прога(не эта часть,а вся8) )предназначенна для соединения разрезанных другой прожкой файлов.А режутся они так,что после остаются файлы по алфавиту,ну,а она должна найти их,чтобы соединить.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог