Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно экспортировать функцию по EntryPoint (ordinal)? [D7, XP]


Е95 ©   (2015-10-10 04:21:00) 

Добрый ночь!
Есть системная функция, которая как я понял не экспортируется по имени. В описании указано: Exported by ordinal only.
Я так понял (но ещё не полностью разобрался) нужен GetProcAddress? Но может Паскаль/Делфи умеют экспортировать проще? Как обычно?

Пример 1 (заголовок для Делфи, функция по имени):

function PrintWindow(HWND:HWND;hdcBlt:HDC;nFlags:DWORD):BOOL; stdcall; external 'user32.dll';

Пример 2 (заголовок для Шарпа, функция по точке):

[DllImport("SomeDLL.dll", EntryPoint = "#2", CharSet = CharSet.Unicode)]
public static extern int OpenThemeFile(string p1, string p2, string p3, out IntPtr p4, int p5);


Как-то возможно так же сделать (перевести) для Делфи? Или в принципе не поддерживается? Как понять "#2"?
Если что - у меня есть разные версии Делфи и FreePascal.


Е95   (2015-10-12 15:46:00) [1]

DependencyWalker не нашёл функций с похожими именами. Где там по индексам/номеру не увидел.
Пробовал конечно, пару раз словил AV, думал, понял что у меня кажется тип данных не правильно описан, искал, переписываю на паскаль.

Спасибо ещё раз!


Игорь Шевченко   (2015-10-11 10:32:00) [2]


> А как понять в объявлении для Шарпа - EntryPoint="#2" ?


Спросить на форуме по Шарпу


Dimka Maslov   (2015-10-10 18:56:00) [3]

Попробовать не пробовал?
либо index 2, либо name '#2'. А вообще заведи себе прогу Dependency Walker.


Е95   (2015-10-10 13:15:00) [4]

Спасибо! А как понять в объявлении для Шарпа - EntryPoint="#2" ?
Просто немного смущает символ "#" и ещё что это строка, а не число.


Игорь Шевченко   (2015-10-10 10:09:00) [5]


> function PrintWindow(HWND:HWND;hdcBlt:HDC;nFlags:DWORD):
> BOOL; stdcall; external 'user32.dll';

импорт по имени

function SHChangeIconDialog: Boolean; external 'shell32.dll' index 62; - импорт по номеру


Наверх

Титульная страница Поиск, карта сайта Написать письмо