Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к члену структуры. C++, Проблема с доступом к структуре 
:(
    Опции темы
BaDP1nG
Дата 24.7.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Здравствуйте! 
Пишу на c++  используя встроеный ассемблер
Есть структурка tmp типа SHELLEXECUTEINFO. 
Как обратиться к ее членам?
lea eax, [tmp.hProcess] не компилится. кричит [C++ Error] Unit1.cpp(69): E2017 Ambiguous member name '_PROCESS_INFORMATION::hProcess' 
PM MAIL   Вверх
Rrader
  Дата 24.7.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: нет
Всего: 191



tmp.hProcess находится по смещению [eax + 56] для SHELLEXECUTEINFOA.
Код

    __asm
    {
       lea eax, Tmp
       mov eax, [eax + 56]
       // EAX - hProcess
    }



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
AndNot
Дата 24.7.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Цитата(BaDP1nG @  24.7.2008,  15:04 Найти цитируемый пост)
lea eax, [tmp.hProcess] не компилится
Видимо компилятор тупой, но никакого криминала в этой инструкции не заметил smile Не лучше ли задать вопрос в разделе Синяков? Это их язык, кто как не они должны знать, на чем пишут smile Или сделай ручками: 
lea eax, [tmp]
add eax, xxxxx
где xxxx - смещение нужного поля.

Добавлено @ 17:49
Rrader, ему не значение hProcess нужно, а адрес ;) Так что не mov, а add eax, 56

Добавлено через 4 минуты и 34 секунды
Кстати, ватком тоже отказался с полями структур работать smile 

Это сообщение отредактировал(а) AndNot - 24.7.2008, 17:49
PM MAIL   Вверх
dumb
Дата 24.7.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 4
Всего: 158



Код

__asm {
    lea eax, tmp.(SHELLEXECUTEINFO)hProcess
    mov [eax], 1
// или так
    lea eax, tmp
    mov [eax].(SHELLEXECUTEINFO)hProcess, 2
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.