Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.29;
Скачать: CL | DM;

Вниз

Объявление функции   Найти похожие ветки 

 
=Guest=   (2007-04-06 14:22) [0]

Как объявить эту функцию в Delphi
HRESULT CALLBACK DllGetVersion(DLLVERSIONINFO *pdvi);


 
Джо ©   (2007-04-06 14:26) [1]

function DllGetVersion (var VerInfo: DLLVERSIONINFO) Longint;

Что такое DLLVERSIONINFO — понятия не имею, тебе виднее.


 
Джо ©   (2007-04-06 14:26) [2]

То есть:
function DllGetVersion (var VerInfo: DLLVERSIONINFO) Longint; stdcall;


 
Джо ©   (2007-04-06 14:27) [3]

Блин, сорри за опечатки, двоеточие забыл.


 
=Guest=   (2007-04-06 14:29) [4]

DLLVERSIONINFO структура а *pdvi Указатель на структуру.Джо объясните если Вам не составит труда что значит HRESULT CALLBACK


 
Ega23 ©   (2007-04-06 14:31) [5]


> function DllGetVersion (var VerInfo: DLLVERSIONINFO) Longint;
>  stdcall;


Почему stdcall? Почему не cdecl?


 
Джо ©   (2007-04-06 15:09) [6]

> [5] Ega23 ©   (06.04.07 14:31)
> Почему stdcall? Почему не cdecl?

Ну... потому, что stdcall :)


> [4] =Guest=   (06.04.07 14:29)
> объясните если Вам не составит труда что значит HRESULT
> CALLBACK

HRESULT — это тип возвращаемого результата, HRESULT = type Longint. Можно даже HRESULT сразу писать, он уже описан в System.pas.
CALLBACL - это такая директива (не помню, как точнее), которая описывает функцию как stdcall (то есть, определяет способ передачи параметров при вызове).


 
Джо ©   (2007-04-06 15:10) [7]

> [5] Ega23 ©   (06.04.07 14:31)
>
> > function DllGetVersion (var VerInfo: DLLVERSIONINFO) Longint;
>
> >  stdcall;
>
>
> Почему stdcall? Почему не cdecl?

У меня сейчас на компе нету сишных компилеров и исходников, но вот посмотри описание любой колбэк-функции в МСДН, например:

BOOL CALLBACK EnumWindowsProc(          HWND hwnd,
   LPARAM lParam
);


 
Ega23 ©   (2007-04-06 15:18) [8]


> У меня сейчас на компе нету сишных компилеров и исходников,
>  но вот посмотри описание любой колбэк-функции в МСДН, например:
>


Почему именно MSDN? Нет, я понимаю, что это шаблон, по которому stdcall может подставиться. Но пока объявления его не видно, утверждать этого нельзя.
Или я не прав?


 
Джо ©   (2007-04-06 15:25) [9]

> [8] Ega23 ©   (06.04.07 15:18)
>
> > У меня сейчас на компе нету сишных компилеров и исходников,
>
> >  но вот посмотри описание любой колбэк-функции в МСДН,
> например:
> >
>
>
> Почему именно MSDN? Нет, я понимаю, что это шаблон, по которому
> stdcall может подставиться. Но пока объявления его не видно,
> утверждать этого нельзя.
> Или я не прав?

Да прав, прав, конечно :)
Это у меня тут аврал и голова забита чем угодно, но только не C++
Прошу мои домысли в этой ветке просто CALLBACK считать недействительными...


 
MBo ©   (2007-04-06 15:34) [10]

из windef.h MSVS
#define CALLBACK    __stdcall

обычно CALLBACK - это именно stdcall


 
Ega23 ©   (2007-04-06 15:37) [11]


> обычно CALLBACK - это именно stdcall


Верю. Но #define надо всё-же смотреть...
Просто я тоже один раз вот так ошибку ловил полтора дня. А потом выяснилось, что вместо stdcall разработчик dll cdecl поставил.



Страницы: 1 вся ветка

Текущий архив: 2007.04.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
2-1175509401
bagos
2007-04-02 14:23
2007.04.29
Plugins


15-1175434312
Cyrax
2007-04-01 17:31
2007.04.29
Photoshop: несколько надписей на одном текстовом слое...


2-1176330215
proger007
2007-04-12 02:23
2007.04.29
Табуляция в ListBox


11-1156687886
Александра
2006-08-27 18:11
2007.04.29
KOLListBox


15-1175714119
Real
2007-04-04 23:15
2007.04.29
Мона Лиза - в MSPAINT.EXE за 2,5 часа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский