FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

GDI не принимает русские символы

Участников: 2

Перейти вниз

GDI не принимает русские символы  Empty GDI не принимает русские символы

Сообщение  trew Пт Дек 24, 2010 8:19 pm

Только сегодня заметил:
функции 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

Вернуться к началу Перейти вниз

GDI не принимает русские символы  Empty Re: GDI не принимает русские символы

Сообщение  electrik Вт Дек 28, 2010 11:42 pm

привет. ты используешь wstring строки, соответственно код программы должен быть написан в unicode.
или надо конвертить при помощи winapi.
попробуй в блокноте сохранить текст как в unicode, и снова скомпилируй.
и кстати, вначале программы не забудь написать
#define unicode

просто английские символы, не зависимо от кодировки, находятся на своем месте, а вот русские - ну там все подругому.
wstring, двухбайтовая строка, английские символы имеют те же значения, как в асции, а когда ты засовываешь русскую ansi строку в юникодовскую, получается хрень, в твоем случае левое имя файла.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Вернуться к началу Перейти вниз

GDI не принимает русские символы  Empty Re: GDI не принимает русские символы

Сообщение  trew Ср Дек 29, 2010 7:00 am

Спасибо, буду пытаться...

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Вернуться к началу Перейти вниз

GDI не принимает русские символы  Empty Re: GDI не принимает русские символы

Сообщение  trew Пт Янв 21, 2011 4:14 pm

Вопрос решен с помощью API MultiByteToWideChar. Пример ее использования:

https://freebasic.forum2x2.ru/t14p45-topic#2693

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения