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
}