请教一个问题。我用Delphi调用Vc的动态库。在Vc动态库里有一个 int __stdcall InitKey( int com );语句,我调用它怎么内存出错?我是这样调用的:
function InitKey(In_Com: Shortint): Shortint; overload; far;External 'KCCardInf.dll'LabEdt_COMValue.Text := IntToStr(InitKey(1));
function InitKey(In_Com: Shortint): Shortint; overload; far;External 'KCCardInf.dll'LabEdt_COMValue.Text := IntToStr(InitKey(1));
解决方案 »
- Format()求救啊。
- 关于不能插入时间的问题,请大家帮帮忙
- 数据转换的问题
- dbexpress中的TSQLConnection的简单问题,高手看一下。
- 我如何知道sina的短信网关?
- 在主窗体跳出之前跳出一个登录窗体,怎么做到?
- 没分了,发个帖子接点分.
- 编输入法程序中怎样设计自己的数据,怎样定义索引?(来者有分!!!)
- 在DELPHI中在插入数据时,怎么将当前的数据拷贝到下一个新记录上。在FOXPRO中是用SET CARRY ON 命令,不知在DELPHI中怎么做
- 关于Font的保存,谁能帮我?
- MVC模式的理解问题 ?(年底散分, 来者有分!)
- 如何从一组七位数字中,提取出不重复的数,并按升序排列
http://www.programfan.com/showarticle.asp?id=1211
大哥要不你把shortint改成integer看看
1,加stdcall声明
2,Shortint改成Integer
// 功能: 取得主钱包的信息
// 输入参数:
// com 串口号 0:com1, 1:com2, 2:com3 ...
// 返回参数:
// IccID IC卡帐号
// userName 用户姓名
// balance 卡片余额
// amount 最后一次消费金额
// exchangeSn 卡片交易流水号
// 返回值:
// 0 成功
// 非0 失败(调用GetErrInfo可以获得详细的错误信息)
//////////////////////////////////////////////////////////////////////////////////////////////////////////
int __stdcall GetMainPurseInfo( int com, unsigned long* IccID, BYTE* userName, long* balance, short* amount, short* exchangeSn );我在delphi 里怎样调用VC的这个涵数;
估计是这儿出的.
http://www.gzmwiccard.comfunction GetMainPurseInfo(com:Integer;
var IccID:Cardinal;
userName:Pchar;
var balance:Integer;
var amount:short;
var exchangeSn:short):Integer;stdcall;
// 功能: 获取详细的错误信息
// 输入参数:
// errCode 函数调用时返回的错误代码
// 返回值: 成功 -- 详细的错误信息
// 失败 -- NULL
////////////////////////////////////////////////////////////////////////////////////////////
char* __stdcall GetErrInfo( int errCode, char* errInfo );
我在delphi 里怎样调用VC的这个涵数;
////////////////////////////////////////////////////////////////////////////////////////////
// 功能: 获取详细的错误信息
// 输入参数:
// errCode 函数调用时返回的错误代码
// 返回值: 成功 -- 详细的错误信息
// 失败 -- NULL
////////////////////////////////////////////////////////////////////////////////////////////
char* __stdcall GetErrInfo( int errCode, char* errInfo );delphi调用怎么出错!???
function GetErrInfo(ErrCode: Integer; var ErrInfo: PChar): PChar;
far; stdcall; external 'KCCardInf.dll';
这个函数还是出错??
可以转换成
function GetErrInfo(errCode:Integer;errInfo:PChar):PChar;严格说,这个函数定义得很不严谨, 呵呵..会让人觉得这公司缺人才..------------------------------------------------
调用:
var
buf:array[0..1000]of char;....
FillChar(buf,1000,0);
GetErrInfo(errCode,@buf);
ErrorMsg: array[0..1000]of char;
ErrorCode: integer;
// ErrorMsg: PChar;
begin
ErrorCode := StrToInt(LabEdt_ErrorCode.Text);
FillChar(ErrorMsg, 1000, 0);
GetErrInfo(ErrorCode, @ErrorMsg);
end;
这段代码怎么出这样的错误:
[Error] Uni_ReadCard.pas(154): Types of actual and formal var parameters must be identical