首页 > 代码库 > 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