起步软件技术论坛-X3

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: luoyb

[请求]x3引用命名空间问题**

[复制链接]
发表于 2009-3-13 17:37:18 | 显示全部楼层
unit RBSPAdapter;

interface
uses
  SysUtils, Variants, Classes,Controls,
  Dialogs, StdCtrls,ActiveX;

implementation
procedure __free(l :TList ); stdcall; external 'RBSPAdapter.dll'name '__free';
function QueryCustom(const service,queryCondition: PChar; var success: boolean): TList; stdcall; external 'RBSPAdapter.dll' name 'QueryCustom';

end.

我这里delphi没了,看了一下你的interface下面是没有定义的,这个必须定义一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 17:41:00 | 显示全部楼层
什么意思,它只引用'RBSPAdapter.dll'的方法啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 17:43:46 | 显示全部楼层
我原来在窗体上是这样调用的
unit PCILib;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ActiveX, DB, ADODB;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    ADOQuery1: TADOQuery;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

    Function Send(ACondition: String;IP: String; Port: String;
             SenderID:String; ReceiverID:String; DataObjectCode:String; ReturnFields:String;
             bSuccess:Boolean) : TLIST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

procedure __free(l :TList ); stdcall; external 'RBSPAdapter.dll'name '__free';
function QueryCustom(const service,queryCondition: PChar; var success: boolean): TList; stdcall; external 'RBSPAdapter.dll' name 'QueryCustom';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  //ID,IP,Port,SenderID,ReceiverID,DataObjectCode,ReturnFields : String;
  s:string;
  b:boolean;
  ss:TStrings;
  i:integer;
  l:TList;
begin
  //TButton.Create(nil);
  CoInitialize(nil);
  s:='xm='+sysutils.QuotedStr(Edit1.text);
  l:=QueryCustom('QueryQGRK',PChar(s),b);
  Memo1.Lines.Clear;
  for i := 0 to l.Count - 1 do
  begin
    ss:=TStrings(l.Items);
    Memo1.Lines.AddStrings(ss);
  end;
  __free(l);
  CoUninitialize();
{ with ADOQuery1 do
  begin
    Close;
    SQL.Text := 'select * from T_SYS_FYPARAM where fylyid = ''BSCK''';
    Open;
    ID := FieldByName('FYLYID').AsString;
    IP := FieldByName('IP').AsString;
    Port := FieldByName('PORT').AsString;
    SenderID := FieldByName('SenderID').AsString;
    ReceiverID := FieldByName('ReceiverID').AsString;
    DataObjectCode := FieldByName('DataObjectCode').AsString;
    ReturnFields := FieldByName('ReturnFields').AsString;
  end;}

  {lList := Send('sfzh = ' + ACondition, AQQFWInfo.IP, AQQFWInfo.Port,
  AQQFWInfo.SenderID, AQQFWInfo.ReceiverID, AQQFWInfo.DataObjectCode, AQQFWInfo.ReturnFields,
  bSuccess)}

end;


Function TForm1.Send(ACondition: String; IP: String; Port: String;
         SenderID: String; ReceiverID: String; DataObjectCode: String; ReturnFields: String;
         bSuccess: Boolean) : TLIST;
begin
  
end;


end.
回复 支持 反对

使用道具 举报

发表于 2009-3-13 17:47:27 | 显示全部楼层
你按照附件的里面的格式去做,  函数结尾是EX的是为了适应平台而做的转换函数。平台调用不了一些类型可以按照这样的方法去做。就是再包装一层。另外:我没delphi,编译不了

esfp_api.rar

1.35 KB, 下载次数: 53

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 17:49:04 | 显示全部楼层
恩,好的,我试下,不过还真的很感谢你们
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 17:51:41 | 显示全部楼层
你们明天论坛上有管理员在线吗
回复 支持 反对

使用道具 举报

发表于 2009-3-13 18:09:07 | 显示全部楼层
有人值班的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 04:40 , Processed in 0.041761 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表