//怎么我运行的时候会出错呢?这是什么回事啊,请指教.我是包含少了一个头文件
//了吗?还是怎么了?
//错误提示是:
/*--------------------Configuration: MultiClrdCaption - Win32 Debug--------------------
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MultiClrdCaption.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.MultiClrdCaption.exe - 4 error(s), 0 warning(s)*/
#include<afxwin.h>
#include<afxext.h>
class CMyApp : public CWinApp{
public:
virtual BOOL InitInstance();
};class CMyWnd : public CFrameWnd{
protected:
void PaintTitleBar(BOOL bActive);
afx_msg void OnNcPaint();
afx_msg BOOL OnNcActivate(BOOL bActive);
DECLARE_MESSAGE_MAP();
};BOOL CMyApp::InitInstance(){
CMyWnd *pWnd = new CMyWnd;
pWnd->Create(NULL,"having fine colors windows caption");
pWnd->ShowWindow(SW_SHOW);
pWnd->UpdateWindow();
m_pMainWnd=pWnd;
return true;
}CMyApp MyApp;
BEGIN_MESSAGE_MAP(CMyWnd,CWnd)
ON_WM_NCPAINT()
ON_WM_NCACTIVATE()
END_MESSAGE_MAP()void CMyWnd::PaintTitleBar(BOOL bActive){
CWindowDC dc(this);
CRect rc;
GetWindowRect(rc);
UINT nWidth=rc.Width();
UINT nXFrame=GetSystemMetrics(SM_CXSIZEFRAME);
UINT nYFrame=GetSystemMetrics(SM_CYSIZEFRAME);
UINT nYCaption=GetSystemMetrics(SM_CYCAPTION);
COLORREF cr;
if(bActive){
cr=GetSysColor(COLOR_ACTIVECAPTION);
for(UINT j=nYFrame;j<=nYFrame+nYCaption;j++){
for(UINT i=nXFrame;i<=nWidth/2;i++){
UINT nLen=nWidth/2-nXFrame+1;
if (dc.GetPixel(i,j)==cr){
dc.SetPixelV(i,j,RGB(255-255*(i-nXFrame)/nLen,255*(i-nXFrame)/nLen,0));
}
}
for (i=nWidth/2+1;i<=nWidth-nXFrame;i++){
UINT nLen=nWidth/2-nXFrame-1+1;
if(dc.GetPixel(i,j)==cr){
dc.SetPixelV(i,j,RGB(0,255-255*(i-nWidth/2-1)/nLen,255*(i-nWidth/2-1)/nLen));
}
}
}
}else{
cr=GetSysColor(COLOR_INACTIVECAPTION);
for(UINT j=nYFrame;j<=nYFrame+nYCaption-1;j++){
for(UINT i=nXFrame;i<=nWidth/2;i++){
UINT nLen=nWidth/2-nXFrame;
if(dc.GetPixel(i,j)==cr){
dc.SetPixelV(i,j,RGB(192*(i-nXFrame)/nLen,192*(i-nXFrame)/nLen,192*(i-nXFrame)/nLen));
}
}
for(i=nWidth/2+1;i<=nWidth-nXFrame;i++){
UINT nLen=nWidth/2-nXFrame-1;
if(dc.GetPixel(i,j)==cr){
dc.SetPixelV(i,j,RGB(192-192*(i-nWidth/2)/nLen,192-192*(i-nWidth/2)/nLen,192-192*(i-nWidth/2)/nLen));
}
}
}
}
}void CMyWnd::OnNcPaint(){
CFrameWnd::OnNcPaint();
if(::GetActiveWindow()==GetSafeHwnd())
PaintTitleBar(TRUE);
else
PaintTitleBar(FALSE);
}BOOL CMyWnd::OnNcActivate(BOOL bActive){
CFrameWnd::OnNcActivate(bActive);
if(bActive){
PaintTitleBar(TRUE);
return FALSE;
}else{
PaintTitleBar(FALSE);
return FALSE;
}
}

解决方案 »

  1.   

    这个类似的错误,我也犯过,
    请看看是否有头文件的重复定义!
    和全局函数的定义!
    以及,是否有函数删除了函数体,但是声明却没有删!!
      

  2.   

    一般是有声明而没有实现
    或者就是你的编译器版本问题
      

  3.   

    你的编译设置不对,是不是当作控制台程序编译了?
      

  4.   

    我编译的时候是没错的,只是在连接的时候出错了,为什么?