在《bmp位图操作函数和类 》中的dll中有一个接口类,用来扩展支持图像格式。头文件如下: // *************************************************************** // JKs_CDibInterface version: 1.0 date: // ------------------------------------------------------------- // 图像库扩展接口 // ------------------------------------------------------------- // Copyright (C) 2007 - All Rights Reserved // *************************************************************** // // *************************************************************** #if !defined(_JKS_CDIBINTERFACE_HPP__) #define _JKS_CDIBINTERFACE_HPP__ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #if !defined(_JKSDIBBUILD) #define _JKSDIBBUILD #ifdef _DEBUG #pragma comment(lib,"jksDibD.lib") #pragma message("jksDibD.lib is linked. ") #else #pragma comment(lib,"jksDib.lib") #pragma message("jksDib.lib is linked. ") #endif #endif #ifndef __AFXWIN_H__ #pragma message("This is not supported by MFC.Can't use this Lib. ") #endif #ifdef DIB_DLLEXPORT #define CLASS_DECL_CDIBINTERFACE __declspec(dllexport) #else #define CLASS_DECL_CDIBINTERFACE __declspec(dllimport) #endif #include < afxtempl.h > namespace jks /**/ ////////////////////////////////////////////////////////////////////////// ... {class CDib;class CLASS_DECL_CDIBINTERFACE CDibInterface ...{public: CDibInterface() :m_pDib(NULL),m_pExt(NULL),m_nExt(0) ...{m_PtrList.AddTail(this); } virtual ~CDibInterface(); CDibInterface(CDib *pDib):m_pDib(pDib) ...{ m_PtrList.AddTail(this); } void Release() ...{delete this;} /**//// Get CDib virtual CDib * GetDib() ...{return m_pDib;} /**//// Set CDib virtual BOOL SetDib(CDib *pDib); /**//// filename extension ,必须复写 /// pp用于指定所支持的文件类型的扩展名数组,不带"." /// n支持的文件扩展名个数 virtual char** GetEXT(int& nExt)=0; /**//// Load file virtual BOOL Load(LPCTSTR lpstrFileName) =0; /**//// Save file virtual BOOL Save(LPCTSTR lpstrFileName, CDib* pDib) =0; /**////只要创建一个派生类的对象,系统就知道了 static CPtrList m_PtrList;protected: CDib* m_pDib; char** m_pExt; int m_nExt; };/**//************************************//接口函数,dll里导出派生类对象,或者在def中导出序号为1CDibInterface* GetDibInterfaceObj(){ pObj = new CDibInterface(); return pObj;}*************************************//**///////////////////////////////////////////////////////////////////////////} // #endif // !defined(AFX_JKS_CDIBINTERFACE_HPP__0A3AF2B0_D836_4592_B72E_E68D6727FE21__INCLUDED_)