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

标签 c++ c dll directx

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

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

最佳答案

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

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

关于c++ - 如何在 dll 或库中隐藏结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932081/

相关文章:

c - 为什么当我在子目录中调用 make 时 Make 会重新链接?

c++ - 多重继承需要访问私有(private)变量

c++ - 将 CMake.txt 转换为 .vcxproj 文件 C++ Visual Studio 项目

c - 从浮点赋值到浮点打印时丢失的数据

delphi - 使用嵌入的 dll 作为资源启动程序时出现问题

Python ctypes dll 加载错误 487

c# - 使用 wpf 将 dll 合并为单个 .exe

c++ - 在类成员的实例化期间: "no operator "[ ]"matches these operands"使用 map[key] 访问 std::map 值时

c++ - 无法在 C++ 中打印 map 值的 map

c - glutTimerFunc() 不限制帧率