1

我从http://cppunit.svn.sourceforge.net/获得了 cppunit,直到现在它工作正常,当我需要在 Visual Studio 2012 中重建它时。

所以我从 ..\branches\HB_VS2010\cppunit\ 打开解决方案,将所有项目更新到 v110,添加 x64 平台以进行发布配置并尝试构建它。

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

当我尝试在 debug/win32 或 release/win32 中构建时 - 一切正常。

有人可以帮忙吗?

4

1 回答 1

3

我在尝试为 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 相同。

于 2013-05-20T06:25:14.927 回答