脑袋大了,关于API函数openprinter的问题,救救我吧

joybee125 2004-08-31 04:37:01
我在PB根据API的函数说明定以了一个openprinter的函数,用它来打开打印机,并取得打印机的句柄:function long OpenPrinter ( string PrinterName, ulong hPrinter, printer_defaults pdefaults)&
library "winspool.drv" Alias for "OpenPrinterA"
其中的printer_defaults我也按照说明在PB里定义了结构,在一个地方调用:
ulong ll_hprinter,
PRINTER_DEFAULTS pdefaults
string ls_printer_name
ls_printer_name=parent.ddlb_printer.text
openprinter(ls_printer_name,ll_hprinter,pdefaults)
messagebox("",ll_hprinter)
结果MESSAGEBOX返回始终是0,究竟我错在哪里(打印机名字顺利取得)?
...全文
178 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joybee125 2004-09-01
  • 打赏
  • 举报
回复
1804,说是DATATYP错了。怎么回事呀?
lzheng2001 2004-09-01
  • 打赏
  • 举报
回复
Private Function Long GetLastError() Library 'kernel32.dll'

OpenPrinter(...)
messagebox('test',getlasterror())

看返回什么错误号
joybee125 2004-09-01
  • 打赏
  • 举报
回复
我改了声明了,但还是不行呀,怎么用GETLASTERROR?
TGWall 2004-08-31
  • 打赏
  • 举报
回复
API函数名注意区分大小写,因为它们大多是用C或C++写的
lzheng2001 2004-08-31
  • 打赏
  • 举报
回复
1. 改一下声明:
FUNCTION ulong OpenPrinter(string pPrinterName,ref ulong phPrinter,ref PRINTER_DEFAULTS pDefault) LIBRARY "winspool.drv" ALIAS FOR "OpenPrinterA"

2.用 GetLastError看看返回什么错误代号

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧