c+中的变体类型结构(oaidl.h)+;对于MacOSX? 我试图将我的C++ DLL移植到Windows中,广泛使用了变体(OLE/COM)类型结构(参见)。此类型在visual studio的oaidl.h文件中定义,并在windows中以“windows.h”导入 < XC++中有没有使用C++中的这种类型的方法?显然,包含windows.h是没有意义的,也不起作用。您知道在OSX上使用这种类型的库吗?请注意,该变体使用了我在mac上也找不到的safearray结构。
有一个简短的答案:否。 变体包括许多类型和接口,这些类型和接口仅在Windows环境(例如IUnkown)中才有意义。我自己从Windows开发到POSIX C++ OSX和Linux。我还将代码从windows传输到标准unix世界 IMHO影响最小的方法是用自己的类型(例如MYVARIANT)替换VARIANT,并且只移动您真正需要的部分union。这使您可以自由地制作typedef,在Microsoft和世界其他地区之间切换 但我个人认为你应该设法摆脱它。至少尝试将其封装在一个类中。COM(这是一个让开发人员陷入地狱的好主意的最好例子)及其变体系统是我在任何其他系统上最不缺少的东西 更新 当我进一步搜索时,我发现boost在这里有一个不同的系统:c+中的变体类型结构(oaidl.h)+;对于MacOSX? 我试图将我的C++ DLL移植到Windows中,广泛使用了变体(OLE/COM)类型结构(参见)。此类型在visual studio的oaidl.h文件中定义,并在windows中以“windows.h”导入 < XC++中有没有使用C++中的这种类型的方法?显然,包含windows.h是没有意义的,也不起作用。您知道在OSX上使用这种类型的库吗?请注意,该变体使用了我在mac上也找不到的safearray结构。,c++,xcode,macos,variant,safearray,C++,Xcode,Macos,Variant,Safearray,有一个简短的答案:否。 变体包括许多类型和接口,这些类型和接口仅在Windows环境(例如IUnkown)中才有意义。我自己从Windows开发到POSIX C++ OSX和Linux。我还将代码从windows传输到标准unix世界 IMHO影响最小的方法是用自己的类型(例如MYVARIANT)替换VARIANT,并且只移动您真正需要的部分union。这使您可以自由地制作typedef,在Microsoft和世界其他地区之间切换 但我个人认为你应该设法摆脱它。至少尝试将其封装在一个类中。COM
您可以看到我在这里尝试了什么: 在这里,我描述了我现在如何尝试将一个
变体
移植到MacOSX,如果可以的话