Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка Asmа в Delphi, RegOpenKey 
V
    Опции темы
Ak47black
  Дата 11.5.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Помогите понять как правильно сделать
Вот такой код 
Код

procedure TForm1.Button2Click(Sender: TObject);
asm
  pushad
  push ebx
  push 0
  push HKEY_CLASSES_ROOT
  call RegOpenKey
  popad
end;

Ошибку естествено выскакивает.
Хочю научиться вызывать правильно Api таким способом   smile .

Это сообщение отредактировал(а) Ak47black - 11.5.2007, 14:55
PM MAIL   Вверх
Snowy
Дата 11.5.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(Ak47black @  11.5.2007,  14:49 Найти цитируемый пост)
Ошибку естествено выскакивает.
Естественно.
Нужно параметры передать, а не мусор.

Цитата(Ak47black @  11.5.2007,  14:49 Найти цитируемый пост)
Хочю научиться вызывать правильно Api таким способом
А смысл? Или ты думаешь, что компилятор Delphi сделает это хуже?
PM MAIL   Вверх
W4FhLF
Дата 11.5.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



А зачем апи вызывать на ассемблере? Если ты таким образом пытаешься добиться быстродействия, то это не поможет.

Добавлено через 41 секунду
Snowy, гуру стамины smile 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Ak47black
Дата 11.5.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Цитата(Snowy @  11.5.2007,  15:10 Найти цитируемый пост)
А смысл? Или ты думаешь, что компилятор Delphi сделает это хуже? 

Просто хочю попробовать сделать быстрою процедуру нахождения следушего(NextPath) пути в реестре.
Цитата(Snowy @  11.5.2007,  15:10 Найти цитируемый пост)
Нужно параметры передать, а не мусор.

А как нужно?

Это сообщение отредактировал(а) Ak47black - 11.5.2007, 15:18
PM MAIL   Вверх
Snowy
Дата 11.5.2007, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Быстрее не будет - напиши вызов, поставь бряку и посмотри CPU Window.
3 пуша и 1 call. Смысл вставки?

Цитата(Ak47black @  11.5.2007,  15:16 Найти цитируемый пост)
А как нужно?
Никак. То, что ты напишешь, будет медленнее, ибо компилятор уже знает адреса, а ты нет  smile 
PM MAIL   Вверх
Ak47black
Дата 11.5.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Понятно.
А изза спортивного интереса как тот код правильно оформить?
PM MAIL   Вверх
Snowy
Дата 11.5.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Не проверял, но примерно так:
Код

const KeyName: PChar = 'Microsoft.DirectSoundWave';
var key: PHKey;
begin
  asm
    push key
    push KeyName
    push HKEY_CLASSES_ROOT
    call RegOpenKey

PM MAIL   Вверх
Ak47black
Дата 11.5.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



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

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

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


 




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


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

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