Привет всем!
Очередное обновление библиотеки. В этот раз обновление коснулось в основном Windows версии, хотя на Linux тоже исправлено пару ошибок.
Что сделано :
1) Поддержка UNICODE для WINDOWS версии библиотеки
2) Исправление ошибок и недочетов , в том числе в справке
Пояснение
Можно использовать любую версию ASCII или UNICODE. В заголовке под Windows присутствует дополнительный файл extwstring.bi , в котором реализована динамическая строка UNICODE. Он необходим для UNICODE версии.
В библиотеке появился новый тип USTRING, который по сути:
в ASCII версии является обычным типом STRING
в UNICODE версии является типом extWstring
Использование во всех функциях (за очень редким исключением) одинаково. Справку обновлял только для тех немногих функций , где есть различие.
Для использования UNICODE:
1) библиотека должна быть скомпилирована правильно. Для этого перед компиляцией библиотеки в файле window9.bi нужно раскомментировать строку #Define UNICODE
2) использовать тип USTRING.
Для использования ASCII:
1) библиотека должна быть скомпилирована правильно. Для этого перед компиляцией библиотеки в файле window9.bi нужно закомментировать строку #Define UNICODE
2) использовать тип STRING или USTRING (что одно и тоже для ASCII версии).
В архивах есть скомпилированные библиотеки , для тех кому лень самому делать компиляцию
Про USTRING (aka extWstring) с примерами:
Я уже писал , что с использованием библиотечных функций по сути ничего не поменялось , разве только надо изменить название типа на USTRING. Однако надо пояснить использование USTRING и в том числе в WINAPI функциях.
USTRING под UNICODE является расширением WSTRING.
Объявление происходит как и с типом STRING:
Код
Dim wsText As USTRING ' объявление
Получение указателя и данных:
Код
? wsText ' просто обычное использование как и в случае STRING
? *wsText ' указатель на UNICODE строку , по сути WSTRING PTR
? **wsText ' разыменовывание , по сути тип WSTRING
Все строковые функции и операторы работают с USTRING так же как с STRING.
Пример:
Код
Dim wsText As USTRING ' объявление
Dim wsText2 As USTRING = "ТЕКСТ" ' объявление и сразу присваивание текста
wsText = wsText2 ' обычное присваивание одной строки другой . Можно так же проделывать с обычным STRING , WSTRING , с числами
wsText &= wsText2 ' конкатенация строк . Можно так же проделывать с обычным STRING , WSTRING , с числами
wsText = "ТЕКСТ" & wsText2 & 100 ' конкатенация строк . Можно так же проделывать с обычным STRING , WSTRING , с числами
? len(wsText)
? Instr(wsText, "ТЕКСТ")
А это пример с функцией библиотеки:
Код
#Include "window9.bi"
Dim wsText As USTRING = "Это кнопка"
MessBox("Сообщение",wsText)
А это пример с WINAPI:
Код
#Include "window9.bi"
Dim wsText As USTRING = "Это кнопка"
MessageBox(0, "Сообщение" , *wsText , 0)
Разницу надеюсь уловили. Да , просто в WINAPI отправляем указатель на WSTRING PTR. В очень редких случаях требуется чистая WSTRING , в таком случае добавляем звездочку **wsText.
Вот собственно и все. Скачать можно как и всегда здесь: https://sourceforge.net/projects/guiwindow9/files/