No to je celkem zábavnéPůvodně odeslal iPoK
VB a mikrosekundy
![]()
1) POkud pouzijes GetTickCount TimeGetTime queryPerformanceCounter QueryPerformanceFrequency , pak věz, že Winy nejsou RealTimeOS - tzn. volaní interních funkcí (zde konkrétně z kernelu) nezajišťuje jejich realtime tzn. alepsoň mikrosekundovou přesnost. Je to z důvodů, že funkce z jádra může volat kterýkoliv spuštěný proces a těch jsou desítky a to může vést ke zpoždění i např. 50 milisekund![]()
2) Zkus si ve VB udělat smyčku
A podivej se jakych casu tam dosahnes.Kód:DO casovac(i) = XXX 'napr. ten QueryPer.... LOOP
VB opravdu neni jazyk na mikrosekundy! Bez do C/C++.
3) Nejlepší řešení je obejít Win API a volat přímo RTC RDTSC pomoci instrukci v ASM.
-VB umožňuje "vkládaný ASM kod" , což umožňuje např. -
-matem. výpočty + grafika
- vlastní SEH - nastavení
- úprava kodu (injection)
------- nebo pomocí DLL v ASM (či C/C++) ---
- všechny hooks + DLL injection
- podtřídy oken cizích procesů
Pozn. na vkládání ASM do VB je nejlepší nějaký add-in. Velice programátorsky výživné jsou hard-core metody vkládání ASM do jazyků, které to nepodporují -- u VB napr. vlozenim zkompilovaneho ASM jako stringu pres CByte![]()