Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

c+中的变体类型结构(oaidl.h)+;对于MacOSX? 我试图将我的C++ DLL移植到Windows中,广泛使用了变体(OLE/COM)类型结构(参见)。此类型在visual studio的oaidl.h文件中定义,并在windows中以“windows.h”导入 < XC++中有没有使用C++中的这种类型的方法?显然,包含windows.h是没有意义的,也不起作用。您知道在OSX上使用这种类型的库吗?请注意,该变体使用了我在mac上也找不到的safearray结构。

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

有一个简短的答案:否。 变体包括许多类型和接口,这些类型和接口仅在Windows环境(例如IUnkown)中才有意义。我自己从Windows开发到POSIX C++ OSX和Linux。我还将代码从windows传输到标准unix世界

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

但我个人认为你应该设法摆脱它。至少尝试将其封装在一个类中。COM(这是一个让开发人员陷入地狱的好主意的最好例子)及其变体系统是我在任何其他系统上最不缺少的东西

更新 当我进一步搜索时,我发现boost在这里有一个不同的系统:

您可以看到我在这里尝试了什么:

在这里,我描述了我现在如何尝试将一个
变体
移植到MacOSX,如果可以的话