трабл с visual c++ 2005
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-й версии все проходило на ура.
Может кто знакт почему?
Собственно такая проблема: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].
А вообще-то твой код очччень странный...
Что он делать то должен?
Тебе же компилятор все объяснил.
Он не смог сконвертировать тип 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
да нет это-только кусок кода.
то что он не смог сконвертировать 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 и др.
А что он должен находить по твоему? Файл с именем из одной буквы А?
Ну вообще-то-да:)
Просто прога(не эта часть,а вся8) )предназначенна для соединения разрезанных другой прожкой файлов.А режутся они так,что после остаются файлы по алфавиту,ну,а она должна найти их,чтобы соединить.