На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Вопрос по синтаксису ООП BC++ , 16 bit!
    BC 3.0 16 bit, без RTL.
    А есть ли способ передать в функцию адрес функции какого-либо класса? Очень нужно контролировать целостность кода класса, но никак не соображу как это сделать. Просто при определенных (редких) обстоятельствах прога зависает и именно при создании экземпляра этого класса. В остальных случаях этот класс работает без проблем. Есть подозрения, что его код инициализации портится.
    Сделал так:
    Объявил прототип функции вычисления CRC:
    ExpandedWrap disabled
      long dbg_Check(void (far *funcbeg)(), void (far *funcend)());

    Сама функция на ассемблере и работает как часы.

    Но вот как в нее передать адреса функций класса?
    Пытался так:
    ExpandedWrap disabled
      #define FARADR(f) ((void far (*)())MK_FP(_CS,f))
      ...
      total = dbg_Check(FARADR(RSBase::RSBase), FARADR(RSBase::LastFunc));

    Компилятор назвал меня дураком. Может кто еще помнит старый борланд?
      Эх, поднял архивчик Win98 :)

      Может быть поможет ...

      Модель Huge

      user posted image

      Модель Medium

      user posted image
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0417 ]   [ 17 queries used ]   [ Generated: 28.03.24, 23:10 GMT ]