• <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>

            Tauruser

            Enjoy Every Day
            posts - 34, comments - 95, trackbacks - 0, articles - 5
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            VC++2005 比 VC++ 6.0 退步了?

            Posted on 2006-03-25 14:43 Tauruser 閱讀(7531) 評論(12)  編輯 收藏 引用

              小組已經決定開發對于內部網適用的網絡電視,這兩天一直就在查找使用Windows Media Player ActiveX控件開發播放功能的方法。在網上找了好些書,也到MSDN上找過了,并安裝了Windows Media Player SDK工具包。無奈都找不到有講解在VC++2005下的文章,VC++2003也好啊。是否這兩個平臺都還沒出說明文檔,只是找到了VC6.0下的幫助。SDK Sample里還是有源代碼和SDK幫助文檔里也談了一些。可惜全是E文來的(痛苦)。
              一開始對著SDK幫助文檔,在2005下操作。雖然我知道文檔寫的是6.0下的情況,但是我想應該不會相差太大的。依葫蘆畫瓢的東西就不說了。將WMP控件添加到窗體,給它添加成控件變量。然后想在菜單中添加一個項目,點擊的時候就可以播放特點的URL。就在這一步,問題來了。調用控件變量時,發現并沒有多少成員函數可以給我調用,文檔里顯示有的函數,2005的智能感應也沒法顯示出來。到底是哪里的問題。
              無奈,使用VC6.0照著多做一次,終于發現區別了。6.0里添加變量之后,VC自動生成了很多類。看一下這些頭文件就知道了。

            #include? " wmpplayer4.h "

            // ?Dispatch?interfaces?referenced?by?this?interface
            #include? " wmpcontrols.h "
            #include?
            " WMPSettings.h "
            #include?
            " wmpmedia.h "
            #include?
            " wmpmediacollection.h "
            #include?
            " wmpplaylistcollection.h "
            #include?
            " wmpnetwork.h "
            #include?
            " wmpplaylist.h "
            #include?
            " wmpcdromcollection.h "
            #include?
            " wmpclosedcaption.h "
            #include?
            " WMPError.h "
            #include?
            " wmpdvd.h "
            #include?
            " WMPPlayerApplication.h "

              每個頭文件都對應了一個類。而在2005下,僅是簡簡單單了生成了一個類似于CWMPPlayer4的類。而且類中的內容也縮水了。6.0下生成的CWMPPlayer4已經可以提供很多功能了如:

            public :
            ????
            void ?close();
            ????CString?GetUrl();
            ????
            void ?SetUrl(LPCTSTR?lpszNewValue);
            ????
            long ?GetOpenState();
            ????
            long ?GetPlayState();
            ????CWMPControls?GetControls();
            ????CWMPSettings?GetSettings();
            ????CWMPMedia?GetCurrentMedia();
            ????
            void ?SetCurrentMedia(LPDISPATCH?newValue);
            ????CWMPMediaCollection?GetMediaCollection();
            ????CWMPPlaylistCollection?GetPlaylistCollection();
            ????CString?GetVersionInfo();
            ????
            void ?launchURL(LPCTSTR?bstrURL);
            ????CWMPNetwork?GetNetwork();
            ????CWMPPlaylist?GetCurrentPlaylist();
            ????
            void ?SetCurrentPlaylist(LPDISPATCH?newValue);
            ????CWMPCdromCollection?GetCdromCollection();
            ????CWMPClosedCaption?GetClosedCaption();
            ????BOOL?GetIsOnline();
            ????CWMPError?GetError();
            ????CString?GetStatus();
            ????CWMPDVD?GetDvd();
            ????CWMPPlaylist?newPlaylist(LPCTSTR?bstrName,?LPCTSTR?bstrURL);
            ????CWMPMedia?newMedia(LPCTSTR?bstrURL);
            ????BOOL?GetEnabled();
            ????
            void ?SetEnabled(BOOL?bNewValue);
            ????BOOL?GetFullScreen();
            ????
            void ?SetFullScreen(BOOL?bNewValue);
            ????BOOL?GetEnableContextMenu();
            ????
            void ?SetEnableContextMenu(BOOL?bNewValue);
            ????
            void ?SetUiMode(LPCTSTR?lpszNewValue);
            ????CString?GetUiMode();
            ????BOOL?GetStretchToFit();
            ????
            void ?SetStretchToFit(BOOL?bNewValue);
            ????BOOL?GetWindowlessVideo();
            ????
            void ?SetWindowlessVideo(BOOL?bNewValue);
            ????BOOL?GetIsRemote();
            ????CWMPPlayerApplication?GetPlayerApplication();
            ????
            void ?openPlayer(LPCTSTR?bstrURL);

              相反在2005下的生成的類一點成相應的成員函數都沒有提供。(郁悶)
              照著6.0下的源碼給2005添加相應的成員函數,bingo正常工作了。
              難道我以后的工程都要在6.0下先生成代碼,然后再COPY到2005下。(天啊,折磨人啊)
              到底是2005比6.0退步了,還是我不會用2005?怎么回事?


            ?

            Feedback

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-03-25 15:52 by Donne
            用MapObjects進行VC二次開發也有這個問題!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-03-29 10:39 by reviver
            我覺得VS.net的編譯速度也要比VC6慢得多

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-03-30 21:54 by jemmy
            2005相對VC6,更符合C++標準,不要被VC6慣壞了

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-03-31 10:24 by sPhinX
            有點懷疑,做網絡電視,用Windows Media Player ActiveX控件就可以了?不知道控件能不能完全滿足你的需要,我還是覺得這些東西還是用DirectShow自己來實現放心一些。

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-04-05 14:46 by 夢天堂
            我學校用的是VC++6.0
            感覺還不錯

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2006-06-19 09:32 by lqicc
            CWMPPlaylist newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL);
            請問這個怎么用啊。
            我在VC下,怎么總會出現錯誤。
            我想實現的是,在一個關于音樂文件的列表中的數據,放到Windows Media Player的播放列表中。
            謝謝!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2007-06-10 00:32 by ljzpzh
            在網上下了個VC++6.0,編譯過程經常操作無反映,郁悶.哪位好心人有正版的捐出來大家分享一下.先謝過了.

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2007-06-10 12:01 by 星夢情緣
            正在學習VC++6.0中..................

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2007-07-13 00:14 by yuanrichard
            你自己不會用別怪開發環境,vc05對c++標準的支持更好了,改進的東西多了很多,那個添加activex不是象你那樣做的,從vs03開始就可以通過右擊項目,選擇添加類菜單添加這種Activex的類支持了,在添加類里面有個從Activex控件添加mfc類,選擇這個就可以添加Windows Media Player ActiveX的類了,然后再添加變量生成的對應的類的接口就都完善了。做網絡電視播放用這個控件不好用,很多格式支持不行的,不如自己開發一個。

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2008-07-15 13:39 by vs2005
            yuanrichard ,vs2005是可以添加類到工程,但是生成的是變量名是 COcx1 m_player;

            vs6里生成的變量很直觀, CWMPPlayer4 m_player;
            可以直接使用CWMPPlayer4里的方法,但是vs2005里使用起來極不方便,有哪些方法也沒提示!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2008-08-13 14:13 by wwd
            在OninitialDialog里添加一個:CWMPPlayer4 m_player->CreateDispatch(COcx1對象m_player.GetClsid()),就行了

            # re: VC++2005 比 VC++ 6.0 退步了?  回復  更多評論   

            2009-05-28 12:24 by geyin
            一般邏輯
            越來越好
            人妻丰满?V无码久久不卡| 久久伊人精品青青草原高清| 久久se这里只有精品| 久久露脸国产精品| 亚洲午夜久久久影院| 久久综合九色综合欧美狠狠| 欧美日韩中文字幕久久久不卡| 新狼窝色AV性久久久久久| 大香网伊人久久综合网2020| 欧美精品国产综合久久| 99久久免费国产特黄| 亚洲精品美女久久久久99小说| 精品久久久久中文字幕日本 | 国内精品欧美久久精品| 欧美亚洲国产精品久久| 狠狠干狠狠久久| 欧美久久久久久| 久久强奷乱码老熟女| 久久电影网一区| 99久久免费国产特黄| 久久久久av无码免费网| 久久久久亚洲精品无码网址| 粉嫩小泬无遮挡久久久久久| 精品久久久一二三区| 中文字幕精品久久| 热RE99久久精品国产66热| 久久国产成人午夜aⅴ影院| 国产精品久久久久9999| 国内精品伊人久久久久av一坑 | 精品视频久久久久| 久久精品无码一区二区三区| 久久精品国产亚洲AV大全| 久久精品国产精品亚洲精品| 久久久高清免费视频| 久久久久久久波多野结衣高潮| 久久精品国产一区二区三区不卡 | 国产精品九九久久免费视频| 久久国产精品国产自线拍免费| 精品熟女少妇av免费久久| 久久91综合国产91久久精品| 日本免费久久久久久久网站|