【发布时间】: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