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

Вниз

вызов функции stdcall   Найти похожие ветки 

 
pest_tt ©   (2007-05-06 16:47) [0]

Компилятор ругается (Undeclared identifier: "stdcall"). раньше с stdcall не работал. буду признателен за совет.

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Wcrypt2;
...
function RegProg(Action:string):boolean;
var
  ContainerHandle:HCRYPTPROV;
  _result:boolean;
 .....
begin
DataForHash:=form1.edit1.Text;
SizeDataForHash:=length(DataForHash);
_result:=CryptAcquireContext(@ContainerHandle,nil,nil,PROV_RSA_FULL,CRYPT_VERIFY CONTEXT); stdcall;
...
...
RegProg:=true;
end;


 
{RASkov} ©   (2007-05-06 16:50) [1]

stdcall;
Ставиться в объявлении функций(процедур).... но никак не в теле.


 
pest_tt ©   (2007-05-06 17:09) [2]

мне препод сказал, что это сишные функции и для их вызова в делфи нужно изменить порядок параметров вызовом stdcall, тк в си и делфи параметры используются в этих функциях наоборот. не знаю либо я напутал, либо он чушь сказал.
в любом случае спасибо, {RASkov}.


 
{RASkov} ©   (2007-05-06 17:35) [3]

> [2] pest_tt ©   (06.05.07 17:09)

Верно. Только выглядит это типа так
procedure NameProc(var C: Char; ...); stdcall;
begin

end;


или вот

function GetIndex(<Param>): Integer; stdcall;
......

implementation

procedure SetListIndex(Lb: TListBox);
begin
 Lb.ItemIndex:=GetIndex(<Param>);
end;


 
{RASkov} ©   (2007-05-06 17:41) [4]

Второй пример может и несовсем доходчивый, но суть в том, что stdcall - это деректива и ставиться она в заголовке функ(проц) для указания...

> в делфи нужно изменить порядок параметров

...порядка следования параметров в стеке.


 
pest_tt ©   (2007-05-06 17:54) [5]

так вроде понятно все. дело в том, что я создаю свою функцию (процедуру) и уже в ней вызываю CryptAcquireContext, которая находится в Wcrypt2.pas и там после заголовка этой функции уже написано stdcall.
т.е. я вызову CryptAcquireContext в делфи и параметры в стеке будут расположены уже в правильном порядке.

еще раз спасибо. ;)


 
Alex_C ©   (2007-05-07 10:10) [6]


> уже в ней вызываю CryptAcquireContext, которая находится
> в Wcrypt2.pas и там после заголовка этой функции уже написано
> stdcall.


Ну вот и все! Только stdcall один раз при объявлении ф-ции надо указывать. А когда саму ф-цию. вызываешь - уже не надо.



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

Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
15-1177701326
koha
2007-04-27 23:15
2007.05.27
"Редактор диска своими руками" вопрос для kerk


2-1178279969
Бульбаш
2007-05-04 15:59
2007.05.27
Ошибка при запуске exe-шника.


15-1177855274
Cj
2007-04-29 18:01
2007.05.27
Статья на сайт


15-1177492057
Novice
2007-04-25 13:07
2007.05.27
dot NET


15-1177936407
Равшан
2007-04-30 16:33
2007.05.27
Добавление элемента в сбалансированное бинарное дерево.





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