CJlibrary 6.08是一套非常漂亮的用戶界面類。為廣大的VC用戶所歡迎。但是在VC.net下編譯的時候報錯,需要修改方能運行通過。我已把我修改并編譯通過的過程記錄下來,供大家參考。下面列出每個錯誤及其修改方式:
1.報錯:
CJlirary.h文件#include <..\src\afximpl.h>文件找不到
修改:
改為#include <..\src\mfc\afximpl.h>
2.報錯:
COLORREF clr = afxData.bWin4 ? afxData.clrBtnShadow : afxData.clrWindowFrame 中bwin4沒有定義
修改:
查找并替換所有項目文件中afxData.bWin4為fxData.bWin95
3.報錯:
(CCJMonthCalCtrl*) CWnd::FromHandle(pDX->m_hWndLastControl);中m_hWndLastControl不是CDataExchang成員
修改:
查找并替換項目中pDX->m_hWndLastControl 為pDX->m_pDlgWnd->m_hWnd
4.報錯:
CJColorPopup.cpp文件CWnd::OnActivateApp(bActive, hTask);不能將hTask參數轉換成DWORD
修改:
修改CJColorPopup.h和ColorPopup.cpp文件中的OnActivateApp函數聲明,將HTASK hTask轉換成DWORd hTask
5.報錯:
CJCaption.cpp無法從void (__thiscall CCJCaption::* )(UINT,LONG)轉換為LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)
修改:
改CJCaption.h文件afx_msg void OnPushPinButton(UINT lParam, LONG wParam)為afx_msg LRESULT OnPushPinButton(UINT lParam, LONG wParam);
6.報錯:
switch((pNMPGCalcSize)->dwFlag)類型錯誤
修改:
先修改函數頭為BOOL CCJPagerCtrl::OnPagerCalcSize(/*NMPGCALCSIZE**/NMHDR* pNMPGCalcSize, LRESULT* pResult)再修改switch(((NMPGCALCSIZE*)pNMPGCalcSize)->dwFlag)
7.報錯:
無法從“BOOL (__thiscall CCJPagerCtrl::* )(NMPGCALCSIZE *,LRESULT *)”轉換為“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”
修改:
把NMPGCALCSIZE修改為NMHDR,并且將CCJPagerCtrl::OnPagerCalcSize的實現修改為:
BOOL CCJPagerCtrl::OnPagerCalcSize(NMHDR* pNMPGCalcSize, LRESULT* pResult)
{
NMPGCALCSIZE* ns = (NMPGCALCSIZE*) pNMPGCalcSize;
switch(ns->dwFlag)
{
case PGF_CALCWIDTH:
ns->iWidth = m_nWidth;
break;
case PGF_CALCHEIGHT:
ns->iHeight = m_nHeight;
break;
}
*pResult = 0;
return FALSE; // Let parent handle message
}