zoukankan      html  css  js  c++  java
  • vc dll的生成和使用 && HDC和CDC转换 && 根据HDC得到HBITBMP

    这两天做了打印机的上位机驱动,要生成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

  • 相关阅读:
    Android之网络数据存储
    Android之ContentProvider数据存储
    类CL_ABAP_TYPEDESCR,动态取得运行时类型
    创建采购订单批到程序用的BAPI
    关于时间的函数
    去非数字字符串的前导零
    abap四舍五入的函数
    读取域的文本表
    PP屏幕增强点
    时间戳计算
  • 原文地址:https://www.cnblogs.com/chagmf/p/3799610.html
Copyright © 2011-2022 走看看