PureBasic - форум

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

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


Вы здесь » PureBasic - форум » PureBasic для Windows » DLL не возвращает номер картинки


DLL не возвращает номер картинки

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

1

номер она возвращает, но IsImage() говорит что картинки нет
но возвращает ImageID() и картинка есть
как такое может быть, что не так сделал
DLL

Код:
Macro q1(s):MessageRequester("", ""+s):EndMacro
UsePNGImageDecoder()
DataSection
IncludePath "cover\"
cr06: :IncludeBinary "cr06.png"

EndDataSection
Structure uuu
num.i
api.i
EndStructure

ProcedureDLL.a contrl(*mm.uuu)
Protected im1, w1
im1=CatchImage(#PB_Any, ?cr06)
;im1=LoadImage(#PB_Any, "cover\cr06.png")
q1(IsImage(im1))
*mm\num=im1
*mm\api=ImageID(im1)
ProcedureReturn 1
EndProcedure

её вызов

Код:
EnableExplicit

If OpenLibrary(125, "get_call-x64.dll")=0
MessageRequester("", "нет файла get_call-x64.dll")
End
EndIf
Structure uuu
num.i
api.i
EndStructure

Procedure calldll2()
Protected mm.uuu
CallCFunction(125, "contrl", mm.uuu)
Debug ""+mm\num+" "+mm\api+" "+IsImage(mm\num)
SetGadgetState(13, mm\api)
;SetGadgetState(14, ImageID(mm\num)); нет этой картинки
EndProcedure


Procedure senior()
Protected ev, eg, em, et
If OpenWindow(1234, 870, 640, 400, 300, "5555555")
AddKeyboardShortcut(1234, #PB_Shortcut_Escape, #ESC); ESC
ImageGadget(13, 9, 9, 0, 0, 0)
ImageGadget(14, 170, 9, 0, 0, 0)
calldll2()

Repeat
ev=WaitWindowEvent():eg=EventGadget():et=EventType():em=EventMenu()
If ev=#PB_Event_Menu And em=#ESC:Break:EndIf; ESC

If ev=#PB_Event_Gadget

EndIf

Until ev=#PB_Event_CloseWindow
EndIf
EndProcedure

senior()

0

2

Список картинок в dll и exe разный. Это относится не только к картинкам.

0

3

теперь понятно, будем знать
хреново это, половина функций с номером работает, половина с ИД

0

4

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

0


Вы здесь » PureBasic - форум » PureBasic для Windows » DLL не возвращает номер картинки