我对 WTL 很陌生,这里是我的主对话框的 onCreate 代码
int Cwin32_mfcDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialogEx::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
MARGINS mar = {0};
mar.cyBottomHeight = 100;
DwmExtendFrameIntoClientArea(m_hWnd,&mar);
return 0;
}
但是当我尝试编译我的项目时,我得到了这个错误
error LNK2019: unresolved external symbol __imp__DwmExtendFrameIntoClientArea@8 referenced in function "public: int __thiscall Cwin32_mfcDlg::OnCreate(struct tagCREATESTRUCTA *)" (?OnCreate@Cwin32_mfcDlg@@QAEHPAUtagCREATESTRUCTA@@@Z)
这是输出:
1>------ Build started: Project: win32_mfc, Configuration: Debug Win32 ------
1>Build started 5/24/2012 1:08:43 AM.
1>InitializeBuildStatus:
1> Touching "Debug\win32_mfc.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> win32_mfcDlg.cpp
1>ResourceCompile:
1> All outputs are up-to-date.
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>win32_mfcDlg.obj : error LNK2019: unresolved external symbol __imp__DwmExtendFrameIntoClientArea@8 referenced in function "public: int __thiscall Cwin32_mfcDlg::OnCreate(struct tagCREATESTRUCTA *)" (?OnCreate@Cwin32_mfcDlg@@QAEHPAUtagCREATESTRUCTA@@@Z)
1>D:\projects\C++\Projects\Team_projects\Bill\net\ttt\win32_mfc\Debug\win32_mfc.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.48
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
这是我的 StdAfx.h 代码:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // MFC support for ribbons and control bars
#include <dwmapi.h> // DWM APIs
//#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
//#endif
该项目在 MFC 和 Visual Studio 2010 以及 Windows 7 x64 中