首页 > 代码库 > vc dll的生成和使用
vc dll的生成和使用
这两天做了打印机的上位机驱动,要生成DLL,了解了这方面的东东,记录下简单。
因为要在wince平台上使用,接口不能用MFC类,所以费劲的转换成了非MFC,也就使用Non-MFC Dlls
DLL的生成:
*.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得到其里位图信息的源码,自己找了好长时间,无意中想到的笨方法:
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处理得到位图信息:
CDC *pdc = CDC::FromHandle(*(HDC *)p); CBitmap *pBitmap; CBitmap *pBitmap; BITMAP bm; if((pBitmap = pdc->GetCurrentBitmap()) == NULL) { return 0; } pBitmap->GetBitmap(&bm);
这痛苦的日子啊,VC三年前都放下了,是不想再拾起来了,痛苦的API
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。