请教一个问题。我用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));
解决方案 »
- 请大伙介绍几本 Delphi 图像编程方面的书, 先谢谢了^_^
- richedit组件如何实现个别字体的颜色改变...
- 我做了一个代理服务器,使用来连接数据库的!
- 各位高手,在Delphi中插入vba代码?
- 在delphi里,数组变量是不是也就是指向该数组首地址啊?
- 准备学delphi,请给予建议?
- dbexpress+mysql方式,修改数据后,一调用applyupdate更新就出错。
- 如何在两个FORM中互相调用控件???
- 请看看这两个涵数,请问有什么作用?
- 如何更改listview的ITEM被选中时字的颜色和底色
- 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