• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            力為的技術(shù)博客

            聯(lián)系 聚合 管理
              154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

            Using Variant to Store Point

            ?

            ??????Variant is a very powerful data type to store 'any' data. With the help of COM class _variant_t, VARIANT bacomes very easy to use. But _variant_t dosen't support all kinds of data type, for example, point data with two or three elements. Variant can hold pointer, but the memory management becomes a stubborn problem when copying variant. I'm trying to find a better way to solve the problem, but I don't want to rewrite a variant. So,? dose the way exist?

            ??????Many UI-libs use variant to hold data of properties, such as BCGPControlBar, and they do support point displaying. Actually the point elements are formated to a string so that they be stored into one property. But it's very boring to parse values between points and variant, so it's a good idea to write a adapter for them. This adapter takes charge to format point data to string, extract point data from string, and ex-convert with _variant_t.

            if we have a point class like this:

            ?

            class ?Point3D
            {
            public :
            Point3D()
            {}
            Point3D(
            double ?x,? double ?y,? double ?z);
            double ?x();
            double ?y();
            double ?z();
            private :
            double ?x,?y,?z;
            }
            ;

            ?

            we can write our point adapter as following:

            ?

            class ?PointAdapter
            {
            private :
            CString?m_strData;
            public :
            PointAdapter();
            PointAdapter(
            const ?Point3D & ?point);
            PointAdapter(
            const ?_variant_t & ?point);

            operator ?Point3D() const ;
            operator ?_variant_t() const ;
            }
            ;

            ?

            now, we can use the classes:

            ?

            Point3D?point( 1 , 2 , 3 );
            _variant_t?var?
            = ?PointAdapter(point);
            Point3D?point2?
            = ?PointAdapter(var);



            ?

            posted on 2006-08-30 15:30 力為 閱讀(1930) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 4. C++ FAQ3. VC&MFC&Qt

            評(píng)論

            # re: 用variant存point數(shù)據(jù) 2006-08-31 00:02 萬(wàn)連文
            struct直接導(dǎo)出,VB可以使用,不過(guò)好像有warning  回復(fù)  更多評(píng)論
              

            久久国产色AV免费看| 久久久久综合国产欧美一区二区| 久久久精品国产| 伊人久久精品无码av一区| 久久中文精品无码中文字幕| 亚洲国产成人久久综合一区77| 婷婷久久综合九色综合九七| 久久久久成人精品无码中文字幕 | 久久精品中文騷妇女内射| 99久久免费国产精精品| 久久综合久久综合亚洲| 欧美日韩中文字幕久久伊人| 偷偷做久久久久网站| 2020最新久久久视精品爱| 亚洲AV无一区二区三区久久 | 中文精品久久久久人妻| 国产精品久久久天天影视| 久久久久亚洲AV成人网人人网站| 91精品国产高清久久久久久国产嫩草 | 青青热久久综合网伊人| 精品国产乱码久久久久软件| 国产成人精品久久亚洲高清不卡| 亚洲国产另类久久久精品黑人| 久久久久久国产精品无码下载| 久久99国产精品久久| 99久久久国产精品免费无卡顿| 久久综合鬼色88久久精品综合自在自线噜噜| 久久精品国产亚洲AV嫖农村妇女| 人人狠狠综合久久亚洲| 精品久久久久久国产牛牛app| 久久中文娱乐网| 久久精品国产91久久综合麻豆自制| 久久久久亚洲AV无码专区体验| 亚洲色婷婷综合久久| 久久精品国产亚洲AV不卡| 亚洲国产小视频精品久久久三级| 女同久久| 久久综合噜噜激激的五月天 | 久久久久无码精品| 国产精品久久久久乳精品爆| 国产精品青草久久久久福利99|