关于WinCE打印,终于忍不住要发话了!

tomlance 2010-08-18 11:18:38
WinCE5.0程序,VC++2005 开发环境,小弟只想获取默认的打印机来打印。找了无数篇文章,都是说
::CreateDC(打印机驱动名,NULL,NULL,NULL);之类,但这个打印机驱动名怎么来却没有描述。大牛们你的这一点点省略给菜鸟造成无限的烦恼啊!

也有找到PRINTDLG pd;AfxGetApp()->GetPrinterDeviceDefaults(&pd);可是因为GetPrinterDeviceDefaults为无法解析的外部符号而编译不通过,也搜索了无数次就是不知道依赖那个lib文件。

折磨小菜太甚了。。。。

哪个牛人帮忙解决一下这个难言之隐,顺便教我设置横向打印, 100分奉上
...全文
979 30 打赏 收藏 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
guangliny 2011-12-12
  • 打赏
  • 举报
回复
关注中,正需要这个,看来没有正解,等待啊。。。
puyoupuyou90 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 aaa_tnt 的回复:]
引用 21 楼 puyoupuyou 的回复:
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的

GetPixel
[/Quote]
GetPiexl效率太低了,对于一个较大的图像来说就是噩梦。。。
用GetObject也得不到想要的数据,如果说我有HBITMAP的句柄,是不是这个句柄就是指向图像地址的指针呢,那么这块内存是在memDC中的么?
看来缺少理论知识就是不行呀~
shellgo 2010-08-25
  • 打赏
  • 举报
回复
楼主啊,搞定打印了吗?
xygh2006 2010-08-25
  • 打赏
  • 举报
回复
都是些大侠,我是来学习的
xiao_rq 2010-08-24
  • 打赏
  • 举报
回复
学习了,楼主不错!
tomlance 2010-08-23
  • 打赏
  • 举报
回复
虽然结贴了,但还是为没有稍微耐心一点的大虾的出现感到有一丝遗憾。经过我的了解,WinCE只对一些使用PCL语言的打印机支持。也就是说如果在PB定制的时候选择了PCL打印支持的相关组件,那么应用程序在使用PCL打印机时可以不用自己开发驱动程序。我下面给出WinCE使用PCL打印机的一个简单的例子(还没有测试,打算买PCL打印机后测试),希望和有和我一样的烦恼的同行有一点帮助。
DEVMODE *pDM = new DEVMODE;
::memset(pDM,0,sizeof(DEVMODE));
pDM->dmSize = sizeof(DEVMODE);
pDM->dmOrientation = DMORIENT_LANDSCAPE;//横向打印
pDM->dmPrintQuality = DMRES_HIGH;
pDM->dmPaperSize = DMPAPER_A4;
HDC hdc = ::CreateDC( "pcl.dll", 系统检测到的打印机的名字, "LPT1"/*使用USB接口1,如果实用接口2则是LPT2*/, pDM );//Switch between LPT1 and LPT2 depending on which USB-Port you connect the printer

创建了hdc,接下来就可以以Windows GDI的方式来打印了
puyoupuyou90 2010-08-23
  • 打赏
  • 举报
回复
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
Ei 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 puyoupuyou 的回复:]
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
[/Quote]
GetPixel
shellgo 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 puyoupuyou 的回复:]

我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
[/Quote]
这个兄弟,能否交流下打印机驱动,qq:4470509
tomlance 2010-08-21
  • 打赏
  • 举报
回复
如果EnumPrinters在CE下面能用,我也不至于这么烦恼了。多谢楼上的兄弟提醒- -
winceARM 2010-08-20
  • 打赏
  • 举报
回复
首先你要知道你的BSP有没有实现打印机驱动,如果有,第一个参数为打印机驱动名(XXX.DLL),第二个参数忽略,第三个参数打印机端口名(LPTx)—————————个人见解
shellgo 2010-08-20
  • 打赏
  • 举报
回复
哥们,能不能吧你的测试程序发出来啊,最近也在研究打印机,
shellgo@126.com
谢谢啊
tomlance 2010-08-20
  • 打赏
  • 举报
回复
横向打印我自己研究出来了,在CreateDC的第四个参数,DEVMODEW里面有dmOrientation

差一点了,你们就帮我完成第一个参数吧,拜托了。 我就是想达到换不同的打印机,程序也不需要用户手动干预,自动就能打印的效果。所以拜托你们别问打印机是什么型号了,那是你们开发底层驱动的大牛们的工作,小弟只是表层的应用。
tomlance 2010-08-20
  • 打赏
  • 举报
回复
都说了在操作系统的封装gdi接口下,对打印机的品牌型号那些不关心的。 封装的工作是操作系统和驱动程序共同完成,我就是一个傻瓜式的用户,不关心那些
harkspan 2010-08-20
  • 打赏
  • 举报
回复
没有那打印机的相关资料么?再不行找那打印机的厂家问下
asideu 2010-08-20
  • 打赏
  • 举报
回复
不知道名字 你可以枚举打印机的
http://faq.csdn.net/read/200896.html
tomlance 2010-08-20
  • 打赏
  • 举报
回复
还没有解决,继续顶一顶
tomlance 2010-08-20
  • 打赏
  • 举报
回复
COM的格式我知道,打印机那个名字格式不清楚,我想尝试EnumPrinter,可是又没有这样的函数
tomlance 2010-08-19
  • 打赏
  • 举报
回复
唯一的办法是自己顶上去
harkspan 2010-08-19
  • 打赏
  • 举报
回复
默认的打印机?啥意思?查了下,不知道楼主有没Google
http://blog.csdn.net/tayosoft/archive/2007/07/12/1686160.aspx
楼主是使用的什么接口的打印机?
如果是USB接口,你需要找到这款打印机的USB驱动(针对wince的);参考下:
http://www.fish888.com/WINCE-t142976
具体驱动应该找产家拿吧
如果是并口,你需要扩展一个并口接口,并做好对应的并口的驱动;
如果是串口接口,驱动就不用做了,直接对串口进行操作,然后满足对方提出来的协议即可
我上次弄的一个是串口的,直接发串口命令就行,其它几点是看别人说的,具体也不了解,顺便贴出来
还有GetPrinterDeviceDefaults是Windows的函数吧,WinCE下可能没有实现
加载更多回复(6)
内容概要:本文围绕Module模块化开发在5G网管系统中的插件化架构应用展开,重点介绍如何通过模块化与插件化技术解决多厂商设备(如华为、中兴、爱立信等)北向接口适配难题。文章提出基于SPI机制、类加载器隔离、协议转换模块化和灰度发布等核心技术,构建可扩展、易维护的网管系统架构,并通过华为告警适配插件的完整代码示例,展示了插件从定义、加载到解析的全流程。该架构实现了厂商适配的解耦与热插拔,显著提升系统的灵活性与可维护性。; 适合人群:具备Java开发基础,熟悉SPI、类加载机制,从事通信网管系统、OSS系统或大型企业级平台开发的研发人员,尤其是工作3-5年、参与过系统集成或中间件设计的工程师; 使用场景及目标:①实现跨厂商5G基站告警采集与性能监控的统一接入;②构建可扩展的光传输网络拓扑发现与核心网配置审计系统;③支持故障诊断平台的知识插件动态扩展;④降低新增设备厂商的接入周期与运维成本; 阅读建议:此资源强调架构设计与工程实践结合,建议读者不仅关注代码实现,还需深入理解SPI机制、类加载隔离原理及插件生命周期管理策略,结合实际网管场景进行模拟开发与调试,掌握高可用插件化系统的设计要点。
内容概要:本文围绕“Module模块化开发实践项目在通信行业的应用”,系统阐述了模块化开发在嵌入式通信系统中的关键技术与实际应用。通过引入模块、接口契约和关注点分离等核心概念,结合状态机驱动、配置与代码分离、自动化测试等实践技巧,展示了如何构建高可靠、易维护的通信软件系统。文章以一个基于RTOS的多协议通信固件为例,深入分析了线路监控、协议处理与主机通信三大模块间的事件驱动机制和解耦设计,强调了硬件抽象层与消息队列在实现可移植性和可扩展性中的关键作用,并展望了算网融合、零信任安全和低代码配置等未来趋势。; 适合人群:具备嵌入式系统基础、熟悉C语言与RTOS开发,有1-3年通信或工业控制领域经验的软件工程师和技术架构师。; 使用场景及目标:①掌握通信设备中多协议栈(如Contact ID、SIA)的模块化实现方法;②学习高可用通信系统中的冗余切换、故障恢复与状态机设计;③理解如何通过模块化解耦提升系统的可测试性、可维护性和跨平台适应能力; 阅读建议:建议结合RTOS平台动手实践文中代码案例,重点关注消息队列的使用、状态机的设计以及模块间接口的定义,同时思考如何将模块化思想拓展至网络功能虚拟化与边缘计算场景。

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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