PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » SkinFeature для PB 5.70+


SkinFeature для PB 5.70+

Сообщений 1 страница 4 из 4

1

Добрый день. Мне необходимо привести программу в более-менее комфортный глазу дизайн. Проблема в том, что стиль программы в темных тонах, а как известно у Gadget элементов с этим беда. Отличным вариантом для меня было бы нацепить скин, но SkinFeature на новом PB не желает вставать. Я тестировал на версии PB 4.61 и там SkinFeature работал. За это время синтаксис явно сильно поменялся и как адаптировать  SkinFeature  я ума не приложу :)
У меня есть небольшой бюджет, и если вы можете решить мою проблему я с удовольствием вас отблагодарю! Так же если будет желание, опять же за вознаграждение, мне необходимо отловить и исправить 2 бага в программе.
Из опыта гугления знаю что Пётр спец в вопросах про PB возлагаю надежды на вас! :)

0

2

SkinFeature работает в новых версиях. Нужно всего лишь немного изменить код с учетом того что строки юникодные, а dll требует ascii. https://dropmefiles.com/Ueq8m

Код:
Prototype pInitLicenKeys(Key.p-ascii)
Prototype pLoadSkinFile(Skin.p-ascii, s.p-ascii)

;=============================================================================================
Global UnLoadSkin
Procedure Skin(skin.s)
OpenLibrary(0, "SkinFeature.dll")
InitializeSkin = GetFunction(0, "InitializeSkin")
UnLoadSkin = GetFunction(0, "UnLoadSkin")
rrr.s="Skin/"+skin.s
CallFunctionFast(InitializeSkin)

InitLicenKeys.pInitLicenKeys = GetFunction(0, "InitLicenKeys")
LoadSkinFile.pLoadSkinFile = GetFunction(0, "LoadSkinFile")

InitLicenKeys("КЛЮЧ")
LoadSkinFile(rrr, "")
EndProcedure
Skin(skin.s)

0

3

Пётр написал(а):

SkinFeature работает в новых версиях. Нужно всего лишь немного изменить код с учетом того что строки юникодные, а dll требует ascii. https://dropmefiles.com/Ueq8m

Благодарю за ответ! Но к сожалению чтобы я не делал, получаю ошибку
[11:22:43] Waiting for executable to start...
[11:22:43] Executable type: Windows - x64  (64bit, Unicode)
[11:22:43] Executable started.
[11:22:43] [ERROR] скин_dll.pb (Line: 19)
[11:22:43] [ERROR] Invalid memory access. (write error at address 0)

Я так понимаю что библиотека загружается, но вызвать функцию InitializeSkin не выходит

UPD: Я заметил что у вас win x86.  Я попробовал компилятор x86 и всё заработало! Вроде бы моя программа тоже работает))

UPD: Я всё же заметил неприятную проблему, появилось явное мерцание у PanelGadget

Отредактировано appdurov (23.05.2020 12:11:14)

0

4

dll 32-ух битная, а значит приложение должно иметь такую же разрядность.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » SkinFeature для PB 5.70+