当前位置: 首页 > 工具软件 > wxCode > 使用案例 >

wxCode 之 wxPlotCtrl 编译 问题记录,作后续需要参考

狄宏大
2023-12-01

 

1. 环境: VS2008  , 版本:  wxWidgets-2.8.12.tar.gz

                                             wxthings_2006_04_28.tar.gz

                                             wxplotctrl_2006_04_28.tar.gz

 

2. 由于版本比较老,所以出现了几个比较奇怪的问题。

   问题1:   开着360解压wxWin , 硬是被360吃了一些 art\ 目录下的  .xpm 文件,最终导致 wxWin 的 core 库编译找不到xpm文件

                    ----------------------我的解决办法--------------:  把360关了,解压好编译好之后再说。

  问题2:    wxThings 里面 第700 行的方法:bool wxGenericBrush::IsSameAs(const wxGenericBrush& brush) const

 

原来代码为:

bool wxGenericBrush::IsSameAs(const wxGenericBrush& brush) const
{
    wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush"));
    wxGenericBrushRefData *bData = (wxGenericBrushRefData*)brush.GetRefData();
    return (M_GBRUSHDATA->m_colour  == bData->m_colour) &&
           (M_GBRUSHDATA->m_style   == bData->m_style) &&
	   (M_GBRUSHDATA->m_stipple == bData->m_stipple);

}

修改为, 检查版本。 其实这个原因我也不太知道为什么,是俺师傅告诉我的。

bool wxGenericBrush::IsSameAs(const wxGenericBrush& brush) const
{
    wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush"));
    wxGenericBrushRefData *bData = (wxGenericBrushRefData*)brush.GetRefData();
    return (M_GBRUSHDATA->m_colour  == bData->m_colour) &&
           (M_GBRUSHDATA->m_style   == bData->m_style) &&	   
#if wxCHECK_VERSION(2,7,2)
		   (M_GBRUSHDATA->m_stipple.IsSameAs(bData->m_stipple));
#else
		   (M_GBRUSHDATA->m_stipple == bData->m_stipple);
#endif // wxCHECK_VERSION(2,7,2)

}

 

  问题3 : wxPlotCtrl 库里面出现了 wxArrayDouble 的重定义,这个是因为wxPlotCtrl 版本比较老,和后续的新版本的wxWin 里面添加了wxArrayDouble起了冲突

                     -------------------解决办法--------------------- :  把 wxPlotCtrl 种的 wxArrayDouble 声明给屏蔽掉。

  问题4:  后续出现了一个 编译错误 error C2308, 串联不匹配的字符串。

               比如:  wxMessageBox(wxT(" aaaaaaaaaaaaaaa"

                                                             "bbbbbbbbbbbbbbb "

                                                             "ccccccccccccccccc" );

               后来我换成一个字符串,用分行符来隔开了,编译通过。

 

目前3个库编译都通过了, 等待晚上写个简单的测试程序试试,如果有不对的地方,或者大神们知道详细情况的,还希望告知,我也是带懂不懂的。

 

 类似资料: