llddkzf 发表于 2024-3-9 10:42:28

大佬们 请教嵌入式语句

BOOL OpenPrinter(
_In_LPTSTR             pPrinterName,
_Out_ LPHANDLE         phPrinter,
_In_LPPRINTER_DEFAULTS pDefault
);

这个API函数 用嵌入式语句 应该怎么写的

99101617 发表于 2024-3-9 12:34:15

https://bbs.voldp.com/thread-15371-1-1.html
看看这个

Xelloss0618 发表于 2024-3-9 14:13:39

<火山程序 类型 = "通常" 版本 = 1 />

类 打印机测试 <公开 折叠>
{
    方法 打开打印机 <公开 静态 类型 = 整数 折叠 @嵌入式方法 = "">
    参数 打印机名称 <类型 = 文本型>
    参数 打印机句柄 <类型 = 变整数 注释 = "返回打印机句柄" @需求类型 = 可写入变量>
    参数 pDefault <类型 = PRINTER_DEFAULTS指针 注释 = "可以提供空指针">
    {
      @ OpenPrinter(@<打印机名称>.GetText(), (LPHANDLE)&@<打印机句柄>, @<pDefault>)
    }

    方法 例子 <折叠>
    {
      变量 打印机句柄 <类型 = 变整数>
      变量 pDefault <类型 = PRINTER_DEFAULTS指针>
      打开打印机 ("名称", 打印机句柄, pDefault)// pDefault为空指针,不返回内容
      调试输出 (打印机句柄)
    }

    方法 例子2 <折叠>
    {
      变量 打印机句柄 <类型 = 变整数>
      变量 pDefault <类型 = PRINTER_DEFAULTS指针>
      pDefault = PRINTER_DEFAULTS指针.创建 ()
      打开打印机 ("名称", 打印机句柄, pDefault)// pDefault不为空指针,返回内容
      调试输出 (打印机句柄, pDefault.pDatatype.取文本 (), pDefault.DesiredAccess)
      pDefault.销毁 ()// 创建后必须销毁
    }
}

类 PRINTER_DEFAULTS指针 <公开 基础类 = 本地结构指针模板 折叠 @别名 = "PRINTER_DEFAULTS*" @模板实现类 = "PRINTER_DEFAULTS指针">
{
    变量 pDatatype <公开 类型 = 常量文本指针 @输出名 = "pDatatype">
    变量 "// pDevMode" <公开 类型 = LPDEVMODE 注释 = "这个结构体太复杂了,懒得封" @输出名 = "pDevMode">
    变量 DesiredAccess <公开 类型 = 整数 @输出名 = "DesiredAccess">
}

llddkzf 发表于 2024-3-9 22:26:40

Xelloss0618 发表于 2024-3-9 14:13
类 打印机测试
{
    方法 打开打印机


大佬 不行啊 编译出错了

错误: 使用所指定的本地编译器编译当前程序失败
<C:\Users\Administrator\Desktop\小游戏 辅Zhu\ceee\src\main.v>, 21: 错误:
    error C2664: “逻辑型 OpenPrinterW(LPWSTR,LPHANDLE,LPPRINTER_DEFAULTSW)”: 无法将参数 1 从“const WCHAR *”转换为“LPWSTR”
    note: 转换丢失限定符
    D:\voldev\plugins\vprj_win\sdk\winsdk\10\include\10.0.18362.0\um\winspool.h(1333): note: 参见“OpenPrinterW”的声明

Xelloss0618 发表于 2024-3-10 11:55:17

llddkzf 发表于 2024-3-9 22:26
大佬 不行啊 编译出错了

错误: 使用所指定的本地编译器编译当前程序失败


哦,没注意它要求没const,加个强转就行了
@ OpenPrinter((LPTSTR)@<打印机名称>.GetText(), (LPHANDLE)&@<打印机句柄>, @<pDefault>)

llddkzf 发表于 2024-3-11 10:52:22

Xelloss0618 发表于 2024-3-10 11:55
哦,没注意它要求没const,加个强转就行了
@ OpenPrinter((LPTSTR)@.GetText(), (LPHANDLE)&@, @) ...

感谢 大佬的 热心解惑 :D:D:D
页: [1]
查看完整版本: 大佬们 请教嵌入式语句