gpt4 book ai didi

c++ - Mac OSX 的 c++ 中的变体类型结构 (oaidl.h)?

转载 作者:行者123 更新时间:2023-11-30 03:56:17 27 4
gpt4 key购买 nike

我正在尝试移植我在 Windows 中开发的 c++ dll,它广泛使用 Variant (ole/com) 类型结构(请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/ms221627%28v=vs.85%29.aspx)。该类型在visual studio的oaidl.h文件中定义,在windows中用“windows.h”导入。

是否有任何现有的方法可以在 xcode 中的 c++ 中使用此类型?显然包含 windows.h 没有意义,也不起作用。您知道在 OSX 上使用这种类型的库吗?请注意,变体使用我在 mac 上也找不到的 safearray 结构。

最佳答案

有一个简短的回答:不。VARIANT 包括许多仅在 Windows 环境中有意义的类型和接口(interface)(例如 IUnkown)。我自己从 Windows 开发转向 POSIX C++ OSX 和 Linux。因为我还将代码从 Windows 转移到标准的 Unix 世界。

恕我直言,影响最小的方法是用自己的类型替换 VARIANT,例如MYVARIANT 并且只移动你真正需要的 union 部分。这使您可以自由地制作一个在 Microsoft 和世界其他地方之间切换的 typedef。

但在我个人看来,您应该尝试摆脱它。至少尝试将其封装在一个类中。 COM(这是一个让开发人员陷入困境的好主意的最好例子)及其 VARIANT 系统是我在任何其他系统上最不想错过的东西。

更新当我更深入地搜索时,我发现 boost 在这里有一个变体系统: http://www.boost.org/doc/libs/1_36_0/doc/html/variant.html

关于c++ - Mac OSX 的 c++ 中的变体类型结构 (oaidl.h)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com