Seite 1 von 1

Kann mir jemand eine kleine UserLib basteln ??

Verfasst: 05.01.2007 16:17
von nco2k
hi folks,

da ich öfter mal timeGetTime_() verwende und auf eine höhere präzision wert lege, hätte ich gerne eine kleine userlib, welche das initialisieren "timeBeginPeriod_()" beim starten des programms und wieder freigeben "timeEndPeriod_()" beim beenden des programms, automatisch für mich übernimmt und mir somit das leben etwas erleichtert. :mrgreen:

wenn also jemand den folgenden code nach C oder ASM übersetzen könnte und mir daraus eine userlib bastelt, wäre ich demjenigen zum höchsten dank verpflichtet. :allright:

Code: Alles auswählen

;Soll automatisch aufgerufen werden wenn das Programm startet
Procedure.l InitTimePeriod_Begin()
  Shared _TIMERR_.TIMECAPS
  If timeGetDevCaps_(_TIMERR_, SizeOf(TIMECAPS)) = 0
    If _TIMERR_\wPeriodMin > 0
      If timeBeginPeriod_(_TIMERR_\wPeriodMin) <> 0
        _TIMERR_\wPeriodMin = 0
        _TIMERR_\wPeriodMax = 0
      EndIf
    EndIf
  EndIf
EndProcedure

;Soll automatisch aufgerufen werden wenn das Programm endet
Procedure.l InitTimePeriod_End()
  Shared _TIMERR_.TIMECAPS
  If _TIMERR_\wPeriodMin > 0
    timeEndPeriod_(_TIMERR_\wPeriodMin)
    ;_TIMERR_\wPeriodMin = 0
    ;_TIMERR_\wPeriodMax = 0
  EndIf
EndProcedure

;Wird nur benützt um die Lib dem Programm zuzuordnen
Procedure.l InitTimePeriod()
  ;ProcedureReturn #False
EndProcedure
die funktionsweise dürfte klar sein, man verwendet InitTimePeriod() irgendwo am anfang im sourcecode und der rest soll dann automatisch beim starten/beenden des programms aufgerufen werden.

geld kann ich euch leider keins geben (der aufwand ist auch nicht sonderlich gross) ihr kriegt aber dafür einen virtuellen händedruck stärke 5. :D

c ya,
nco2k

Verfasst: 05.01.2007 16:20
von DarkDragon
Machs doch mit Schwanzbiss(Tailbite)...

Verfasst: 05.01.2007 16:35
von ts-soft
Ansonsten kann man den C-Source der PBOSL_Timer-Lib laden, wenns den C sein soll.
Denn desc File ändern, das PBOSL_Timer_Init nicht mehr automatisch
geladen wird, sondern händisch zu laden ist. Die Funktion übernimmt das,
das entladen ist sowieso automatisch.

Gruß
Thomas

// Nachtrag:
Lib kannste hier laden:
http://ts-soft.eu/dl/nco2k.zip
Ist aber nicht Threadsafe, mußte sagen, dann kriegste noch eine :wink:

Verfasst: 05.01.2007 16:51
von nco2k
juhu, vielen dank @ts-soft. :allright:

> Ist aber nicht Threadsafe, mußte sagen, dann kriegste noch eine
ja bitte, wenns keine umstände macht. :D

c ya,
nco2k

Verfasst: 05.01.2007 17:00
von ts-soft
Einfach nochmal laden :wink:
Entweder nur eine nach UserLibraries kopieren, oder für die Threadsafe ein
Subsystem nutzen, dann müssen aber beide libs gleich heissen.

Gruß
Thomas

Verfasst: 05.01.2007 17:13
von nco2k
ok danke, virtuelle-hand-rüberreich. :mrgreen:

mit was hast du es eigentlich erstellt? talibite?

c ya,
nco2k

Verfasst: 05.01.2007 17:16
von ts-soft
Ja, aber anscheinend sind beide Versionen Threadsafe, wirste ja merken
wenn Polink-Fehler kommen, wenn keine kommen brauchste nur eine davon
verwenden.

Die sich in den Schwanz beissende Schlange geht am einfachsten :D

Gruß
Thomas

Verfasst: 05.01.2007 17:19
von DrShrek
Ich hätte da eine Userlib die mit der Win32 API Funktion: QueryPerformanceCounter() arbeitet.