【问题标题】:Poco C++ libraries and Win32 GUI integrationPoco C++ 库和 Win32 GUI 集成
【发布时间】:2015-01-07 09:39:17
【问题描述】:

有没有人在 Win32 GUI 应用程序中使用过 Poco C++ 库? 在 PocoFoundation 库中,UnWindows.h 头文件中的许多 #undef 禁止使用重要的 API(如 CreateWindows()、LoadLibrary() 等)。 好吧,我可以定义 POCO_NO_UNDWINDOWS 标志,但是会出现其他问题。 欢迎任何建议。 塞尔吉奥

【问题讨论】:

  • 我刚刚编译了 Foundation 并定义了 POCO_NO_UNWINDOWS,没有错误。你遇到了什么问题?
  • 用 POCO_NO_UNWINDOWS 在 windows 中编译 PocoFoundation 很顺利。我试图用 LoadLibrary() 动态加载 PocoFoundation.dll。 POCO_NO_UNWINDOWS 是否必须在调用应用程序中定义?
  • 不,不必定义。
  • FWIW,Poco 有一个 SharedLibrary 类,可以简化加载 DLL 的任务。您可以查看有关如何使用它的示例here
  • SharedLibrary 是 PocoFoundation 内部的,因此调用应用程序必须加载 PocoFondation 才能使用 SharedLibrary,您可以从中访问每个模块和类的 ClassLoader。在我看来,有三种可能性:1) 静态加载 PocoFondation 2) 动态加载 PocoFoundation 3) 在调用应用程序中编译 SharedLibrary、ClassLoader 和 FileSysytem,而不需要依赖。

标签: c++ winapi poco-libraries


【解决方案1】:

Poco 作为一个可移植的库,基于 UTF-8 字符串。 Windows Unicode 是 UTF-16。为清楚起见,建议直接调用所有采用字符串的 Windows API 调用(即 A 或 W 版本),并在必要时使用适当的字符串编码及其转换。

编辑:Poco Foundation 库可以使用 POCO_NO_UNWINDOWS 编译。

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多