2011-09-20 144 views
1

我正在使用一個有很多COM函數的C++項目。大部分的輸入和輸出都是VARIANT。有沒有簡單的方法來序列化/反序列化成長,字符串等使用Boost?使用boost來處理COM變體

回答

1

Boost與微軟的COM技術毫無關係。在Boost中最接近COM的變種是boost::any。您可以編寫COM的variant_tboost::any轉換器,然後您可以序列化,轉換等。

+0

所以你說我可以這樣做,但我必須使用OLE2A等編寫轉換函數。 – John

+0

@JWM:是的,你必須自己寫。 – 2011-09-20 19:51:43

+0

boost :: lexical_cast怎麼樣?我可以用它來代替嗎?我試圖將它從BSTR轉換爲int(工程),但無法將BSTR轉換爲字符串。 – John

0

有一個開源的OPC(OLE for Process Control)服務器實現,名爲FatRat庫。它使用提升並推動了很多VARIANTs。非常鼓舞人心。