这两天做了打印机的上位机驱动,要生成DLL,了解了这方面的东东,记录下简单。
因为要在wince平台上使用,接口不能用MFC类,所以费劲的转换成了非MFC,也就使用Non-MFC Dlls
DLL的生成:
1 2 3 4 5 6 7 8 | *.h #ifndef __PRINTERCONTROL_H__ #define __PRINTERCONTROL_H__ int __declspec ( dllexport )PrintDC( void *p); #endif |
因为要静态调用需要*.lib 所以还要生成.def文件,直接创建即可,编译OK
DLL的使用:
可以在头文件里面加入#pragma comment(lib,"PrinterControl.lib")
也可以在配置属性里面设置的;
extern C,要使用,必须在生成DLL的源文件和头文件里添加,才能在使用的工程里使用
再顺便贴个 只根据HDC得到其里位图信息的源码,自己找了好长时间,无意中想到的笨方法:
1 2 3 4 5 6 7 8 | HBITMAP hBmp; HBITMAP hOld; BITMAP bm; hBmp = CreateCompatibleBitmap(hDC, 0, 0); hOld = ( HBITMAP )SelectObject(hDC, hBmp); SelectObject(hDC, hOld); ::DeleteObject(hBmp); ::GetObject(hOld, sizeof (bm), &bm); |
之前自己使用的HDC是转CDC处理得到位图信息:
1 2 3 4 5 6 7 8 9 10 11 | CDC *pdc = CDC::FromHandle(*( HDC *)p); CBitmap *pBitmap; CBitmap *pBitmap; BITMAP bm; if ((pBitmap = pdc->GetCurrentBitmap()) == NULL) { return 0; } pBitmap->GetBitmap(&bm); |
这痛苦的日子啊,VC三年前都放下了,是不想再拾起来了,痛苦的API
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 如何打造一个高并发系统?
· 《SpringBoot》EasyExcel实现百万数据的导入导出