如何在 dll 或库中隐藏结构成员

how to hide struct member in a dll or library

我正在为游戏开发创建一个库,它使用 directx 2d,但是我希望最终用户看不到某些变量(ID2D1Factory、ID2D1HwndRenderTarget 等)。例如,SDL 库甚至使用 directdraw(我猜),directdraw 类 对于 SDL 的最终用户是不可见的,用户不需要在包括编译器的文件夹。

我怎样才能使这些成员独立(最终用户不需要安装 DirectX SDK 就可以使用我的库),并使这些成员对最终用户不可见?

您不需要将 DirectX SDK 安装到 link 针对 DLL .lib,或使用 .h 进行编译,只要您不公开任何 DirectX 对象(您不公开不想做)。

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