我自己现在写了一个图象处理的程序(EXE),现在想把它做成动态连接库,以前没有做过这方面的,不知道怎么做
比如有这样的一个函数:24位BMP转灰度的
在CView.cpp中
void CImageView::On24togray() 
{
// TODO: Add your command handler code here
CPlateRecoDoc* pDoc = GetDocument(); 
LPSTR lpDIB;
lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
OnEditCopy();
ConvertToGrayScale(lpDIB);
::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
pDoc->SetModifiedFlag(TRUE);
pDoc->UpdateAllViews(NULL);
}
在这当中调用了另外一个CPP文件中的一个函数
BOOL WINAPI ConvertToGrayScale(LPSTR lpDIB)   
{
  ....code
}
像这样的怎么去做成DLL呢。
刚学这方面不久,第一次做动态连接库,还请大家多多指点。

解决方案 »

  1.   

    那个函数做到DLL里面,编译出来一个DLL,一个lib。然后在你的CView.cpp里面引用那个函数的头文件,编译的时候链接lib,运行的时候把DLL放到EXE目录里就行了。
      

  2.   

    BOOL  WINAPI  ConvertToGrayScale(LPSTR  lpDIB)        
    {  
       ....code  
    }  
    这个函数做封装做好了
    void  CImageView::On24togray()    
    {  
               //  TODO:  Add  your  command  handler  code  here  
               CPlateRecoDoc*  pDoc  =  GetDocument();    
               LPSTR  lpDIB;              
               lpDIB  =  (LPSTR)  ::GlobalLock((HGLOBAL)  pDoc->GetHDIB());  
               OnEditCopy();  
               ConvertToGrayScale(lpDIB);  
               ::GlobalUnlock((HGLOBAL)  pDoc->GetHDIB());  
               pDoc->SetModifiedFlag(TRUE);  
               pDoc->UpdateAllViews(NULL);              
    }  
    这个能做封装吗?要是可以该怎么实现呢