Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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++ C++;抽象变量实现_C++_Dll_Abstract Class_Variant - Fatal编程技术网

C++ C++;抽象变量实现

C++ C++;抽象变量实现,c++,dll,abstract-class,variant,C++,Dll,Abstract Class,Variant,有没有像boost::ant或boost::variant这样的变体的实现,但是有抽象接口 我想要的是在松散耦合的应用程序中在DLL之间传递变量。因此,如果一个DLL开始在变量中存储新的内容,我希望避免更改所有其他DLL的代码。所有DLL都是使用具有静态CRT链接的不同版本的VisualStudio构建的,因此不能在接口中使用STL类。Boost依赖性也是不可取的。这就是我想要一个抽象接口的原因 如果我必须实现它,我会制作一个抽象接口,其中包含MyVariantInterface::Get/Se

有没有像boost::ant或boost::variant这样的变体的实现,但是有抽象接口

我想要的是在松散耦合的应用程序中在DLL之间传递变量。因此,如果一个DLL开始在变量中存储新的内容,我希望避免更改所有其他DLL的代码。所有DLL都是使用具有静态CRT链接的不同版本的VisualStudio构建的,因此不能在接口中使用STL类。Boost依赖性也是不可取的。这就是我想要一个抽象接口的原因

如果我必须实现它,我会制作一个抽象接口,其中包含
MyVariantInterface::Get/SetData(int-value\u-type\u-tag,byte*data)=0等函数,这些函数可以在DLL之间安全地传递,加上一个模板包装器,方便存储,提取并在一个DLL范围内执行所有大小/类型检查

类似的东西已经存在了吗?

对于Windows,您可以使用它,它在COM中被大量使用

没有额外的依赖项。VARIANT支持多种类型,包括COM接口(例如IUknown)。您甚至可以使用它传递多维数组。

对于Windows,您可以使用它,它在COM中使用得很多


没有额外的依赖项。VARIANT支持多种类型,包括COM接口(例如IUknown)。您甚至可以使用它传递多维数组。

您需要预定义类型的数组还是任意数量的用户定义类型的数组?例如,QT中的QVariant仅支持有限的类型,但如果您还不依赖QT,则可能会引入太多类型;(用户定义的类型非常吸引人,一个预定义的类型解决方案也绝对值得考虑。您需要一个具有预定义类型或任意数量的用户定义类型的解决方案吗?例如,QT的QVariant仅支持有限数量的类型,但如果您还不依赖QT,则可能会引入太多。不幸的是,我们不使用QT pr项目范围;(用户定义的类型非常吸引人,一个预定义的类型解决方案也绝对值得考虑。谢谢。你知道这方面的一个好例子或文档吗?MSDN文章有点神秘。所有的函数都是。如果你有一个特定的问题,也许你应该发布一个新的SO问题。谢谢。你知道一个好例子或文档吗这篇MSDN文章的主题有些晦涩。所有的函数都是。如果你有一个特定的问题,也许你应该发布一个新的SO问题。