【问题标题】:how to hide struct member in a dll or library如何在 dll 或库中隐藏结构成员
【发布时间】:2015-03-08 21:25:38
【问题描述】:

我正在创建一个用于游戏开发的库,它使用 directx 2d,但是我希望某些变量(ID2D1Factory、ID2D1HwndRenderTarget 等)对最终用户不可见。例如,SDL 库即使使用了 directdraw(我猜),directdraw 类对于 SDL 的最终用户是不可见的,并且用户不需要在编译器的包含文件夹中有 ddraw 头。

如何使这些成员独立(最终用户无需安装 DirectX SDK 即可使用我的库),并使这些成员对最终用户不可见?

【问题讨论】:

  • 谷歌Pimpl 成语。或者像 COM 一样构建你的引擎:仅虚拟。另外 SDK 分发不再是必需的了。
  • 请阅读Where is the DirectX SDK?Not So DirectSetup,以便了解用户需要旧版 DirectX SDK 或 DXSETUP 包的实际原因。对于 Direct2D,他们不需要,你也不需要。

标签: c++ c dll directx


【解决方案1】:

您不需要安装 DirectX SDK 来链接 DLL .lib,或使用 .h 进行编译,只要您不公开任何 DirectX 对象(您不想这样做) .

SDL 也不使用 DirectDraw。事实上,自 DirectX 7 以来它甚至都不存在(今年 9 月将发布 12 个,所以你真的脱离了循环)。

【讨论】:

  • 我认为D2D 是他的DDraw
  • 如果你这样做没关系,但它不会成为真的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 2013-07-07
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多