На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> __asm _emit ...
    Короче функция такая

    void __declspec(naked) ON()
    {
    __asm _emit 0xEB //jmp
    }

    Почему когда я

    memcpy(buf, ON, 1);

    у меня в buf 0xE9??

    Если

    memcpy(buf, ON, 100);

    то

    0012FA2C E9 F9 07 00 00 E9 04 07 00 éù...é...
    0012FA35 00 E9 2F 07 00 00 E9 FA 07 .é/...éú.
    0012FA3E 00 00 E9 85 07 00 00 CC CC ..é…...ÌÌ
    0012FA47 CC CC CC CC CC CC CC CC CC ÌÌÌÌÌÌÌÌÌ
    и т.д.

    В buf должно быть 0xEB !!!
    Сообщение отредактировано: 0xBAD -
      Там фишка в том, что в debug-режиме по умолчанию включена генерация стекового фрейма. Отключи нафиг (в настройках оптимизации).
        Не понял я где что отключить надо
          Tools->Set active configuration->Release

          Добавлено в :
          Project->Settings->Link->Generate debug info снять - может это?
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0228 ]   [ 15 queries used ]   [ Generated: 17.05.24, 05:57 GMT ]