GDI не принимает русские символы
Участников: 2
Страница 1 из 1
GDI не принимает русские символы
Только сегодня заметил:
функции Gdi ни в какую не хотят работать с файлами, имеющими русские символы.
У меня пока приходит только одна мысля:
Скопировать его, переименовать и загружать. А сохранять под именем например 1.bmp, потом переименовывать в нужное имя.
Может кто знает лучший вариант?
В данном коде если загружать вместо "1.bmp", например "один.bmp" ,просто игнорируется
функции Gdi ни в какую не хотят работать с файлами, имеющими русские символы.
У меня пока приходит только одна мысля:
Скопировать его, переименовать и загружать. А сохранять под именем например 1.bmp, потом переименовывать в нужное имя.
Может кто знает лучший вариант?
В данном коде если загружать вместо "1.bmp", например "один.bmp" ,просто игнорируется
- Код:
#INCLUDE ONCE "WIN/GDIPLUS.BI"
USING GDIPLUS
DIM ULONG_PTR_01 AS ULONG_PTR
DIM GDIPLUSSTARTUPINPUT_01 AS GDIPLUSSTARTUPINPUT
GDIPLUSSTARTUPINPUT_01.GdiplusVersion = 1
IF (GDIPLUSSTARTUP(@ULONG_PTR_01, @GDIPLUSSTARTUPINPUT_01, NULL) <> 0) THEN
PRINT "FAIL"
ENDIF
DIM GPIMAGE_01 AS GPIMAGE PTR
IF (GDIPLOADIMAGEFROMFILE(WSTR("1.bmp"), @GPIMAGE_01) <> 0) THEN
PRINT "FAIL"
ENDIF
DIM CLSID_01 AS CLSID
CLSIDFROMSTRING WSTR("{557CF406-1A04-11D3-9A73-0000F81EF32E}"), @CLSID_01
IF (GDIPSAVEIMAGETOFILE(GPIMAGE_01, WSTR("1.png"), @CLSID_01 , NULL) <> 0) THEN
PRINT "FAIL"
ENDIF
GDIPDISPOSEIMAGE GPIMAGE_01
GDIPLUSSHUTDOWN ULONG_PTR_01
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: GDI не принимает русские символы
привет. ты используешь wstring строки, соответственно код программы должен быть написан в unicode.
или надо конвертить при помощи winapi.
попробуй в блокноте сохранить текст как в unicode, и снова скомпилируй.
и кстати, вначале программы не забудь написать
#define unicode
просто английские символы, не зависимо от кодировки, находятся на своем месте, а вот русские - ну там все подругому.
wstring, двухбайтовая строка, английские символы имеют те же значения, как в асции, а когда ты засовываешь русскую ansi строку в юникодовскую, получается хрень, в твоем случае левое имя файла.
или надо конвертить при помощи winapi.
попробуй в блокноте сохранить текст как в unicode, и снова скомпилируй.
и кстати, вначале программы не забудь написать
#define unicode
просто английские символы, не зависимо от кодировки, находятся на своем месте, а вот русские - ну там все подругому.
wstring, двухбайтовая строка, английские символы имеют те же значения, как в асции, а когда ты засовываешь русскую ansi строку в юникодовскую, получается хрень, в твоем случае левое имя файла.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: GDI не принимает русские символы
Спасибо, буду пытаться...
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: GDI не принимает русские символы
Вопрос решен с помощью API MultiByteToWideChar. Пример ее использования:
https://freebasic.forum2x2.ru/t14p45-topic#2693
https://freebasic.forum2x2.ru/t14p45-topic#2693
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|