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

Вниз

вызов функции 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
11-1160141707
Zoom Evstrahiev
2006-10-06 17:35
2007.05.27
Зеркало для KOLCoolBar


2-1178531293
Doom-2
2007-05-07 13:48
2007.05.27
Проект вызвал исключение EStringListError


2-1178525001
Труднопроизносимое имя
2007-05-07 12:03
2007.05.27
Работа со сканером штрих - кодов


15-1177442335
Ломброзо
2007-04-24 23:18
2007.05.27
Расскажите про ERP/SAP


15-1177516378
Pazitron_Brain
2007-04-25 19:52
2007.05.27
Подскажите читалку книг