Embarcadero windows 库和包

Embarcadero windows libraries and packages

这是我第一次使用 Embarcadero RAD Studio(C++,而不是 Delphi),尽管在其网站和其他 Internet 上进行了多次搜索,但我仍然对某些概念感到困惑。

到目前为止,我的目标是设置一个 OpenGL 核心配置文件并继续处理 OGL 内容(我很熟悉)。对于其他 IDE/Compiler 我会添加 opengl32 库,使用 wglCreateContextAttribsARBglew.

深入研究 Embarcadero 文件我发现 C:\Program Files (x86)\Embarcadero\Studio.0\lib\win32\release\psdk\opengl32.libC:\Program Files (x86)\Embarcadero\Studio.0\lib\win32c\release\psdk\opengl32.lib(注意 win32 之后的 'c',那是什么?)和 C:\Program Files (x86)\Embarcadero\Studio.0\lib\win64\release\psdk\opengl32.a

所以我想我可以只 "Project->Add to Project..." 库,而不是 Windows 系统中的 "import",因为它在很多年前似乎是需要的。但我很困惑,因为 RAD 可能会自己添加所需的库,至少对于控件而言,对吧?

但我遇到了“.pas”文件,它似乎加载了任何需要的东西。实际上,C:\Program Files (x86)\Embarcadero\Studio.0\source\rtl\win\Winapi.OpenGLext.pas 似乎足够了,所以我可以避免 glew。我的困惑是我不知道“.pas”文件是否可以(以及如何)用于 VCL C++,而不是 Firemonkey,而不是 Delphi.

我找不到 wglCreateContextAttribsARB,也找不到设置核心配置文件上下文的替代方法。

总结:

  1. 我需要添加系统库吗?怎么样?
  2. 如何使用“.pas”文件?
  3. win32win32c 目录有什么区别?
  4. 如何设置 OGL Core Profile 上下文?我的意思是,我是否应该采用检索函数指针的方式 wglCreateContextAttribsARB 还是 RAD 提供了另一种方式?
  5. RAD 是否为 C++ 提供了 glew 的替代品?

1.Do I need to add system libs? How?

通常是的。除非您使用的是已负责添加库的组件。在 Win32 中你必须使用 #pragma link "opengl32.lib" 而在 win64 中你必须将 #pragma link "opengl32.a" 添加到你的 cpp 代码中。

2.How to use ".pas" files?

您不需要将源目录中的文件添加到您的项目中。 Embarcadero 非常好,可以将其大部分组件的源代码包含在产品中。这样您就可以了解它是如何工作的,如果您需要更改某些行为,您可以创建一个新的 class 派生自您想要的 class 并覆盖有问题的功能。一般来说,C++ builder 允许将 Pascal 单元添加到 C++ 项目中,它会自动创建头文件。但在你的情况下,这是没有必要的。

3.Which is the difference between win32 and win32c dirs?

C++ 构建器带有 2 个用于 Windows 的 32 位编译器。一个是基于 clang 的,支持 C++14,用它编译的库在 win32 目录中。另一个是 classic 编译器,用它编译的库在 win32c 目录中。除非你勾选了项目设置中的"Use Classic Compiler",否则你不用担心。

4.How to set a OGL Core Profile context? I mean, should I go with the route of retrieving a function pointer to wglCreateContextAttribsARB or RAD provides another way?

我不知道 RAD studio 可能提供任何组件。您应该搜索 https://torry.net/ or http://www.delphipages.com/ 或更多现有的地方,寻找可以帮助您获得所需内容的组件。

5.Does RAD provide for C++ a replacement of glew?

什么是 "glew"?