Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
=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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1173026527
Bogdan1024
2007-03-04 19:42
2007.04.29
Крутящийся контрол


8-1155490917
h8394E
2006-08-13 21:41
2007.04.29
меню в игре (чужой)


15-1175835282
IMHO
2007-04-06 08:54
2007.04.29
Компилятор BCC


2-1176276094
tytus
2007-04-11 11:21
2007.04.29
Как перевести текст из Unix кодировки в Windows?


6-1162409754
Amt2001
2006-11-01 22:35
2007.04.29
Типы Indy 10





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский