PureBasic - форум

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

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


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Thread + FreeBasic = PureBasic


Thread + FreeBasic = PureBasic

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

1

Здравствуйте, есть код на FreeBasic  хотел бы перевести его,в PureBasic, но к сожалению не хватает знаний.Помогите пожалуйста.

Код:
#pragma msbitfields=1
#If Not __FB_OUT_DLL__
#Error  "Compile as Dll (-dll) or use JellyFish Pro Editor..."
#endif
#Include "windows.bi"
             
Type TickSet
  hWndMain As hwnd
  iWindowsMessage As Integer
  iTimeOut As Long
  iCountMax As Long
End Type

Function Ticker CDECL Alias "Ticker" (ByVal iPtr As TickSet Ptr) As Long Export
  Dim Reply As LRESULT, iCount As Long = 0, Parm As TickSet = *iPtr
  While IsWindow(Parm.hWndMain) <> 0
    Reply = SendMessage (Parm.hWndMain, Parm.iWindowsMessage, iCount, 0)
    iCount += 1
    If iCount = Parm.iCountMax Then Exit While
    Sleep (Parm.iTimeOut, 1)
  Wend
  Return iCount
End Function

Function TickerPtr CDECL Alias "TickerPtr" () As Long Export
  Return cast(Long, @Ticker)
End Function

Заранее спасибо.

Отредактировано Arei (29.11.2011 00:18:21)

0

2

Компилировать как DLL.

Код:
Structure TickSet
  hWndMain.i
  iWindowsMessage.i
  iTimeOut.l
  iCountMax.l
EndStructure

ProcedureCDLL Ticker(*iPtr.TickSet)
  Protected Reply.l, iCount.l=0, Parm.TickSet
  CopyStructure(*iPtr, Parm, TickSet)
  
  While IsWindow_(Parm\hWndMain) <> 0
    Reply = SendMessage_(Parm\hWndMain, Parm\iWindowsMessage, iCount, 0)
    iCount + 1
    If iCount = Parm\iCountMax : Break : EndIf
    Delay(Parm\iTimeOut)
  Wend
  
  ProcedureReturn iCount
EndProcedure

ProcedureCDLL TickerPtr()
  ProcedureReturn @Ticker()
EndProcedure

0

3

И что это за счетчик такой? Чет я не врубился.
Посылает окну сообщение периодически.
И проверяет их количество.
Игрушка? Count Down?

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Thread + FreeBasic = PureBasic