2013-02-21 134 views
1

我从http://cppunit.svn.sourceforge.net/了CppUnit的建设的CppUnit它工作得很好直到现在,当我需要从重建它在Visual Studio 2012如何使用Visual Studio 2012

所以我开解.. \分支\ HB_VS2010 \ cppunit \,将所有项目更新到v110,为发布配置添加了x64平台并试图构建它。

发生的错误是error C2440: 'static_cast' : cannot convert from 'void (__cdecl cdxCDynamicDialog::*)(UINT)' to 'void (__cdecl CWnd::*)(UINT_PTR)'

当我尝试建立在调试/ win32的或发布/ Win32的 - 一切正常。

任何人都可以帮忙吗?

回答

3

我遇到了与Visual Studio 2008试图构建64位cppunit相同的错误。对我有效的是改变了两个功能的签名。

在类cdxCDynamicDialog

afx_msg void OnTimer(UINT nIDEvent); 

成为

afx_msg void OnTimer(UINT_PTR nIDEvent); 

,这样签名将匹配CDialog的:的OnTimer功能。

在此之后,通过我也改变cdxCDynamicWnd

void DoOnTimer(UINT nIDEvent); 

成为

void DoOnTimer(UINT_PTR nIDEvent); 

这不会导致在32位的问题,因为建立在该平台UINT相同UINT_PTR。

+0

换句话说,UINT仍然是x64上的32位类型,而UINT_PTR是x64上的64位类型和x86上的32位类型。 – gbjbaanb 2013-05-20 09:19:23