wxWidgets Windows->MacOS 或 Linux

wxWidgets Windows->MacOS or Linux

我编写了一个 C++ 代码,其 GUI 是使用 wxWidgets 3.1 实现的,我 运行 在 Windows 上编写了它。作为跨平台解决方案,我尝试在 MacOS 上编译项目。 我 运行 正在处理几个问题:

感谢您的帮助!

最好单独提出问题,因为如果我们尝试将所有问题放在一起讨论,事情可能会变得混乱,但这里是基本答案:

  1. wxWindow::SetDoubleBuffered() 没有在 wxOSX 中提供,因为所有 windows 都在那里双缓冲。为了可移植性,仍然可以说应该提供它的存根,但它仍然什么都不做,不调用它不应该导致任何闪烁。
  2. 带有此签名的 wxBitmap ctor 没有被有意记录下来,它对非 MSW 平台没有意义。只需使用不带 dc 参数的 ctor。
  3. 从 wxString 到 std::string 的转换不是 OS 特定的,而是取决于您的构建选项:仅当您在 [=30] 中设置了 wxUSE_STL=1 时才会隐式提供=](或 --enable-stl 配置选项)。为避免依赖于此,您始终可以明确使用 ToStdString()。或者确保您在所有平台下使用相同的选项构建。
  4. 这个错误大概是在您自己的代码中,并且一定是由于没有包含 XPM 文件。这与平台无关,实际上你通常 not 需要 MSW 下的 XPM,所以我不确定你在那里做了什么 - 但只要看看你如何以及在哪里包括它。