Replies (32)

  • @mabu, нахуя, ведь есть растопыренные простыни
  • @lurker, Ну мало ли что у них есть, теперь и у меня будет.
  • @mabu, почему именно VBA? разве оно не устарело? сама платформа win, очевидно, очень старая уже
    ты кем хочешь быть, вообще?
  • @cypa, 1. Не VBA, а FreeBASIC.
    2. Устарело‐устарело, и вам, дяденькая, тоже пора в деревянный макинтош и на кладбище.
    3. Я уже есть.
  • @mabu, ну, для фин. рассчётов я бы попробовал R, julia или MatLab
    habr.com
  • @cypa, либо вообще просто табличку в PostgreSQL со встроенными рассчётами
  • @cypa, Это всё существует, а Я сейчас сделаю своё.
  • @mabu, интересно какая там точность вычислений и в каком знаке у тебя ошибка набегает
  • @cypa, Вы для денег используете числа с плавающей запятой? Ужас, только посмотри.
  • @mabu, хм, дело в том что с каждой операцией, особенно умножение-деление, ошибки накапливаются, а если сложные проценты за 10 или больше периодов, то сам понимаешь сколько может накопиться
  • @cypa, Вычисления в натуральных дробях — это точные вычисления. А для расчёта капитализации процентов достаточно использовать целые числа.
  • @mabu, вот это не понятно, там же умножать нужно постоянно для получения капитализации за каждый период, или я ошибаюсь?
    разве в basic'е есть возможность оперировать натуральными дробями?
  • @cypa, Да, нужно умножать целые числа. Я не понимаю, почему это должно приводить к потере точности и ошибкам округления.
  • @cypa, разве в basic'е есть возможность оперировать натуральными дробями?Во фрибесике только через подключение библиотек или написать самому.
  • @mabu, вроде проценты сами по себе являются дробью 1/100, к тому же бывают дробные значния процентов, что если полтора процента нужно посчитать?
    да и просто если целые умножать, всё равно разрядность рано или поздно переполниться может, вроде бы
  • @mabu, @mabu на сайтах полно как бы.. или просто так захотелось?)
  • @cypa, еще фреймворк надо какой-нибудь обязательно
  • @Anonymous, Полно, а у меня будет своя на бесике и винапи.
  • @cypa, 1. Для всясиких миллионых долей процента припишем справа нужное число нулей, интерпретировать число не как рубли, а как копейки.
    2. Даже миллион триллионов спокойно влезает в 64‐битное целое.
  • @Wlad, Можно ограничиться одним фреймворком kernel32.dll и выводить данные в консоль, но это скучно. Поэтому Я подключил ещё user32.dll и comctl32.dll, чтобы данные в виде талбицы в ListView показывались.
  • @mabu, не помню, если импорта совсем нет, kernel32.dll грузится? а то можно и без нее обойтись. в ntdll.dll наверняка есть все необходимое
  • @mabu, подключи shdocvw.dll и выводи таблички на react.js
  • @Wlad, kernel32.dll всегда грузится, но указатели на функции всё равно придётся получать через LoadLibrary + GetProcAddress.
    А в ntdll.dll же не WinAPI функции, а NTAPI, которое работает только в специальным образом запущенном приложении.
  • @lurker, Страниц со скриптами полно в интернете, а в WinAPI и на фрибесике нет.
  • @mabu, LoadLibrary + GetProcAddress для слабаков. У нас во дворе пацаны получали адрес дефолтного SEH-обработчика через fs:[20h], из него адрес kernel32.dll, а потом парсили ее таблицу экспорта. Ныне SEH правда указывает уже на ntdll.dll, но это мало что меняет.

    А в ntdll.dll же не WinAPI функции, а NTAPI, которое работает только в специальным образом запущенном приложении.Што? WinAPI это обертка вокруг NTAPI по большому счету, оно всегда доступно. kernel32.LoadLibrary в итоге сводится к вызову ntdll.LdrLoadDll, например.
  • @Wlad, А NTAPI — это обёртка вокруг ядерных функций, а попробуй‐ка вызвать какую‐нибудь KeCheckBugEx напрямую?
  • @Wlad, ответишь аргументами за базар?
  • @cypa, Цыган встал на цыпочки и цыкнул на цыпу.
  • @mabu, Блин, причем здесь ядро? NativeAPI доступно в юзермоде (а частично в нем и реализовано, т. е. часть функций даже до ядра не доходит). Кто или что помешает мне вызывать его из самого обычного приложения?
  • @Wlad, Не знаю. Когда Я делал нативное приложение, то его требовалось запускать на раннем этапе загрузки системы, прописывая в специальном ключе в реестре.
  • @mabu, Ааа, понял, о чем ты. Речь про системные проги, которые ТОЛЬКО NTAPI юзают и запускаются рано, когда ничего больше не готово. И у которых точка входа в DriverEntry(), как у драйверов (хотя работают они в юзермоде).
    На самом деле оно и потом никуда не девается, и практически любая прога его косвенно вызывает: kernel32 (WinAPI) -> ntdll (NativeAPI) -> ядро. Причем вызов из kernel32 — обычный CALL без перехода в ring0. Можно и напрямую дернуть.