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

Visual Studio 2008 で 64 ビット用の cppunit をビルドしようとすると、同じエラーが発生しました。私にとってうまくいったのは、2つの関数の署名を変更することでした。

クラス 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 に答える