佳博打印机 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 失败。
*************************************************/
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 失败。
*************************************************/
解决方案 »
- 请问idtcpserver与idtcpclient互通问题
- odac5.7使用问题,在线!!!
- 关于动态库界面的问题,请高手帮忙。
- Delphi中如何导入txt文件的内容??
- 各位高手,怎样把String用SQL写进ACCESS中的“备注”类型字断,最好有例子谢谢!
- 困惑?!数学VS程序
- 为什么我的delph5仅仅可以运行,F7、F8都不能使用?
- 好人们,帮忙
- 救命啊!如何让数据集中的字段出现在FAST REPORT 的插入数据字段的窗口中啊
- 诸位大哥,我MM考我一个谜语,限我今天答复,请大家帮帮我。谜面是:猴山下的厕所(四字成语)
- TWICImage中的LoadFromStream重写,主要是要释放LStream := TStreamAdapter.Create(FData);这句话
- DBCtrlGrid的中图片显示的问题(点击面板触发了哪个事件)
直接写IP,不转换一次试过了没?
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;
在C++中,是绝对不一样的,不知道 VB 和 DP 是不是有区别。