Главная страница
    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.043 c
15-1175802908
ProgRAMmer Dimonych
2007-04-05 23:55
2007.04.29
Подскажите, как реализовать...


15-1175512984
OlegMV
2007-04-02 15:23
2007.04.29
FTP клиент


10-1132074794
LORN
2005-11-15 20:13
2007.04.29
Excel->StringGrid


8-1155833080
brother
2006-08-17 20:44
2007.04.29
работа с флэш


4-1165212307
Krab12345
2006-12-04 09:05
2007.04.29
Продолжение темы "Сокет"





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