2013-02-21 123 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