首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

超难有关问题,散分了,POS.dll调用有关问题

2013-01-11 
超难问题,散分了,POS.dll调用问题!佳博打印机 POS调用DLL问题,在delphi中死活调用不出来,求教!代码如下:fu

超难问题,散分了,POS.dll调用问题!
佳博打印机 POS调用DLL问题,在delphi中死活调用不出来,求教!

代码如下:

function GPNetOpenEX(ipaddr:pchar;connecttime:integer;writetime:integer):Integer; stdcall; external  'GPNetio.dll';
function GPNetOpen(ipaddr:pansistring;connecttime:integer;writetime:integer):Boolean; stdcall; external 'GPNetio.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  openPrn:boolean;
  ipadd:string;
begin
  ipadd:='192.168.0.230';
  openprn:=GPNetOpen(pansistring(ipadd),3,3);
  if openprn then
  begin
    showmessage('连接成功! ');
  end
  else
  begin
    showmessage('连接失败!');
  end;
end;


改成PCHAR也不行!

函数原型如下:

int?WINAPI?GPNetOpenEX(LPCTSTR?ipaddr,int?connecttime,int?writetime)?
?
/************************************************?
**函数名称:GPNetOpenEX?
**功???? 能:连接打印设备。?
**参???? 数:LPCTSTR?ipaddr,设备 IP地址?
int?writetime,写超时,单位:秒?
int?connecttime,连接超时? ,单位:秒?? ?
**返? 回? 值:? 返回大于或等于 0 的连接句柄(conn_num>=0),该值用于发送数据,或关闭连接,?
? ????? 一个进程最多可以同时打开 40个连接,可用于多线程同时?
? ????? 工作.?
???????????? 返回‐1 时连接失败。?



BOOL?WINAPI?GPNetOpen(LPCTSTR?ipaddr,int?connecttime,int?writetime)?
/************************************************?
**函数名称:GPNetOpen?
**功???? 能:连接打印设备。?
**参???? 数:LPCTSTR?ipaddr,设备 IP地址?
int?writetime,写超时,单位:秒?
int?connecttime,连接超时? ,单位:秒?? ?
**返? 回? 值:TRUE??? 成功;?
???????????? FALSE?? 失败。?
*************************************************/?
[解决办法]
各位兄弟姐妹,,我已经搞定了,不过,我是 VC++, ^_^, 我只研究了三个函数,其他参数不知道。
int i;
HINSTANCE  hmod_gp= NULL;
typedef BOOL (WINAPI * FnGPNetOpen)(LPCTSTR a,int co_time,int wo_time);
typedef void (WINAPI * FnGPNetClose)();
typedef int (WINAPI * FnGPNetSend)(LPCTSTR a,int len);

FnGPNetOpen gpopen = NULL;
FnGPNetClose gpclose = NULL;
FnGPNetSend  gpsend = NULL;

////////////////////////////////////////////////////////////
hmod_gp = ::LoadLibrary ("ZYPOS58EX.dll");
if (hmod_gp==NULL) 
{
AfxMessageBox("外设动态链接库 ZYPOS58EX.DLL 加载失败!");
return;
}
gpopen  = (FnGPNetOpen)GetProcAddress (hmod_gp,"GPNetOpen");
gpclose = (FnGPNetClose)GetProcAddress (hmod_gp,"GPNetClose");
gpsend  = (FnGPNetSend)GetProcAddress (hmod_gp,"GPNetSend");
/////////////////////////////////////////////////////////////////////
if (!gpopen("192.168.0.99",60,30)) return;

for(i=0;i<20;i++)
gpsend("01234567890\n",12);

gpclose();

::FreeLibrary(hmod_gp);
gpopen=NULL;
gpclose=NULL;
gpsend=NULL;

热点排行