|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.08.2010, 09:16 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А в каком контексте ты этот __ThisCall увидел?
I'm learning to live...
|
31.08.2010, 09:21 | #3 | |
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Цитата:
Есть такая библиотека и там функции экспортены __ThisCall, и как их использовать в Дельфи, если надо правильно по порядку бередать парамметры. |
|
31.08.2010, 13:49 | #4 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Никак.
В Delphi нет аналога. ThisCall - это родное внутреннее соглашение вызова. Типа register в Delphi (аналога которому в других языках тоже нет; окей, кроме C++ Builder-а). Вызвать родным путём вы сможете его только из MS VC. У вас три варианта: - вызывать процедуру на ассемблере, реконструируя поведение thiscall. - написать на MSVC DLL загрушку-переходник с thiscall на stdcall. - (самый нормальный) изменить библиотеку так, чтобы она изначально использовала stdcall. Ссылки для чтения: http://www.transl-gunsmoker.ru/2008/12/3.html http://msdn.microsoft.com/en-us/libr...bw(VS.71).aspx
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
31.08.2010, 15:01 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
GunSmoker, register=fastcall как показала практика.
а выход через асм(можно переходник юзать) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
31.08.2010, 15:16 | #6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
В каком месте? fastcall использует ECX и EDX. register использует EAX, EDX, ECX.
Это не говоря уже про передачу параметров через стек со-процессора у register. Да, совсем одно и то же, ага.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
01.09.2010, 08:22 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Либо же на ассемблерных вставках дописывай совмещение этих соглашений. Для чего тебе это нужно?
I'm learning to live...
|
|
01.09.2010, 09:08 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Полюбому. Но ты ТЗ не раскрыл, как можно понять что у тебя происходит?
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 | 666dart666 | Помощь студентам | 11 | 04.11.2010 17:57 |
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi | Верчик | Помощь студентам | 9 | 02.03.2009 17:46 |
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? | redred | Общие вопросы Delphi | 10 | 11.12.2007 10:43 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' | Nemesisking | Компоненты Delphi | 7 | 08.09.2007 03:27 |