青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0
曾經有一位csdn朋友問過我這個問題(當時自己很自大,以為知道很多),由于孤陋寡聞沒能夠幫助解決,并且告訴他不可能實現。現在等我知道怎么實現了,確不知道那個朋友在那里。如果上天再給我一次機會,我寧愿不回答。如果非要我給一個答案,我想該說不知道。
無知無畏,大放厥詞,不知道有沒有誤導別人,為自己行為感到慚愧,愿那個朋友已經找到解決方法。在此給出實現,希望對后面有需要的人有幫助。
我開始了解類型庫應該說是從.NET開始,它里面有程序集的概念,程序集里面有類型,可以通過反射技術動態創建。當我再回頭看COM的類型庫時,我完全明白了。在這一點.NET從思想上和COM的類型庫(or OLE)完全等同。COM類型庫等同于程序集的概念,它里面也是類型,下面摘自SDK:
typedef?/*?[v1_enum]?*/?
enum?tagTYPEKIND
????
{????TKIND_ENUM????=?0,
????TKIND_RECORD????
=?TKIND_ENUM?+?1,
????TKIND_MODULE????
=?TKIND_RECORD?+?1,
????TKIND_INTERFACE????
=?TKIND_MODULE?+?1,
????TKIND_DISPATCH????
=?TKIND_INTERFACE?+?1,
????TKIND_COCLASS????
=?TKIND_DISPATCH?+?1,
????TKIND_ALIAS????
=?TKIND_COCLASS?+?1,
????TKIND_UNION????
=?TKIND_ALIAS?+?1,
????TKIND_MAX????
=?TKIND_UNION?+?1
????}
????TYPEKIND;

通過dll查看類型庫有很多種辦法,借助VB開發環境,使用OLE View(VC6自帶小工具)附上一張圖:

為什么要用編程方式獲取類型庫信息呢?自然有理由,想想VB IDE導入類型庫如何實現的?下面就介紹編程。
//?load?a?dll?contain?typelib
????hr?=?LoadTypeLib(L"TgmDocument0906.dll",?&pITypeLib);
????
if(SUCCEEDED(hr))
????
{
????????
//?get?account?of?types?and?iterate
????????nType?=?pITypeLib->GetTypeInfoCount();
????????
for(nIt=0;?nIt<nType;?++nIt)
????????
{
????????????
//?get?each?type
????????????hr?=?pITypeLib->GetTypeInfo(nIt,?&pITypeInfo);
????????????
if(SUCCEEDED(hr))
????????????
{
????????????????
//?what?the?type?is??see?define?of?TYPEKIND,?it?is?a?enum
????????????????pITypeLib->GetTypeInfoType(nIt,?&enumKind);
????????????????
//?get?type?name
????????????????pITypeInfo->GetDocumentation(MEMBERID_NIL,?&bstrName,?NULL,?NULL,?NULL);
????????????????
//?print?type?and?name
????????????????PrintType(enumKind,?W2A(bstrName));
????????????????
//?if?dispatch,?we?print?all?the?functions(or?property?but?i?didn't?distinguish)
????????????????if(enumKind?==?TKIND_DISPATCH)
????????????????
{
????????????????????PrintDispFunc(pITypeInfo);
????????????????}

????????????????SysFreeString(bstrName);
????????????????pITypeInfo
->Release();
????????????????pITypeInfo?
=?NULL;
????????????}

????????}

????????pITypeLib
->Release();
????????pITypeLib?
=?NULL;
????}
我加載一個以前寫的com dll(當然理論上可以是任何含有類型信息的dll或者exe),然后遍歷所有類型,獲取類型的名字并打印,如果類型是dispatch接口,打印出所有接口函數(可能是屬性,在此我沒有判斷)。下面是實驗結果:



示例代碼下載
posted on 2006-09-06 22:21 萬連文 閱讀(2239) 評論(4)  編輯 收藏 引用 所屬分類: ATL

FeedBack:
# re: 通過編程獲取COM dll中Type和Function
2006-09-07 18:11 | LOGOS
這個頁面(不知道是否包括你站點上其他的頁面),可以造成我瀏覽器的內存泄漏,會把整個機器吃了.
我用長風瀏覽器(IE內核).....  回復  更多評論
  
# re: 通過編程獲取COM dll中Type和Function
2006-09-07 22:01 | 漂舟
你瀏覽器這么歪 ?  回復  更多評論
  
# re: 通過編程獲取COM dll中Type和Function
2013-10-30 22:34 | 紅色代碼
額.頂了星星  回復  更多評論
  
# re: 通過編程獲取COM dll中Type和Function[未登錄]
2015-08-08 19:29 | 阿牛
PrintDispFunc(pITypeInfo);

PrintType(enumKind, W2A(bstrName));
這兩個函數是怎么實現的  回復  更多評論
  
簡歷下載
聯系我

<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美高清不卡| 蜜臀av一级做a爰片久久| 亚洲毛片在线看| 欧美日韩视频一区二区| 一区二区三区四区五区精品| 亚洲国内高清视频| 欧美日韩和欧美的一区二区| 亚洲欧美日韩专区| 午夜宅男久久久| 亚洲激情专区| 一区二区三区 在线观看视| 国产精品网站一区| 久久久国产午夜精品| 久久久精品动漫| 一区二区欧美亚洲| 久久国产黑丝| 99re热这里只有精品免费视频| 亚洲特级毛片| 亚洲电影免费观看高清| 99re成人精品视频| 黄色一区二区在线| 亚洲精品一区中文| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 亚洲国产成人高清精品| 欧美日本不卡视频| 久久久久久欧美| 欧美精品乱人伦久久久久久| 性亚洲最疯狂xxxx高清| 美日韩在线观看| 欧美在线亚洲| 欧美人成网站| 免费久久精品视频| 国产伦精品一区二区三区视频孕妇| 欧美激情视频在线免费观看 欧美视频免费一| 欧美精品精品一区| 免费不卡在线观看| 国产精品福利在线观看网址| 欧美成人高清视频| 国产三级精品在线不卡| 99国产精品国产精品久久| 黄色成人精品网站| 亚洲自拍三区| 亚洲淫片在线视频| 欧美人妖另类| 欧美国产亚洲视频| 韩国女主播一区| 亚洲女爱视频在线| 亚洲夜间福利| 欧美日韩高清一区| 91久久在线| 亚洲精品国产日韩| 久久久噜噜噜久久久| 久久国产色av| 国产精品中文在线| 亚洲视频在线二区| 亚洲综合色在线| 欧美三级乱码| 亚洲精品在线观看视频| 久久青草福利网站| 美脚丝袜一区二区三区在线观看 | 欧美三级网址| 亚洲日韩欧美一区二区在线| 最近中文字幕日韩精品 | 欧美一区二区三区免费大片| 午夜欧美大尺度福利影院在线看 | 欧美日韩国产一区二区三区| 亚洲精品国产精品乱码不99| 亚洲欧洲三级| 欧美黑人在线观看| 亚洲人成免费| 一区二区三区四区五区在线| 欧美视频中文在线看| 亚洲天堂av图片| 欧美一区二区视频在线观看| 国产亚洲毛片在线| 久久一区二区三区超碰国产精品| 久久亚洲捆绑美女| 亚洲日本欧美日韩高观看| 欧美激情一区二区三区在线视频观看| 亚洲欧洲免费视频| 亚洲午夜羞羞片| 国产日韩精品一区二区浪潮av| 欧美一区激情| 欧美大片免费观看| 一区二区三区精品在线 | 久久久久综合网| 亚洲国产成人不卡| 亚洲在线一区二区| 国产偷国产偷精品高清尤物| 老鸭窝毛片一区二区三区| 亚洲国产精品成人精品| 亚洲在线观看| 一区在线视频观看| 欧美日本亚洲韩国国产| 亚洲欧美国产毛片在线| 欧美va亚洲va日韩∨a综合色| 妖精成人www高清在线观看| 国产精品日本欧美一区二区三区| 久久精品视频在线看| 亚洲精品视频在线播放| 久久精品国产99| 99精品免费视频| 国产一区二区三区在线播放免费观看| 久久只精品国产| 亚洲夜间福利| 亚洲第一主播视频| 久久av在线看| 99精品视频网| 亚洲福利精品| 国产欧美一二三区| 欧美激情亚洲| 久久久亚洲影院你懂的| 亚洲影音一区| 亚洲精品乱码久久久久久日本蜜臀| 欧美一区国产二区| 亚洲午夜一二三区视频| 亚洲国产另类 国产精品国产免费| 国产精品捆绑调教| 欧美久久久久久蜜桃| 久久久久国产免费免费| 亚洲小说区图片区| 亚洲精品综合精品自拍| 美女脱光内衣内裤视频久久影院| 亚洲欧美制服另类日韩| 欧美日韩在线观看视频| 免费欧美电影| 久久蜜桃精品| 久久国产精品一区二区三区四区| 亚洲素人一区二区| 99视频热这里只有精品免费| 亚洲国产一区二区三区高清| 欧美成人亚洲成人| 裸体女人亚洲精品一区| 久久久欧美一区二区| 欧美一区二区国产| 香蕉成人伊视频在线观看| 中文网丁香综合网| 一二三四社区欧美黄| 99国产精品久久久| 亚洲精品在线看| 亚洲精品小视频在线观看| 亚洲激情偷拍| 亚洲人成毛片在线播放| 亚洲狠狠丁香婷婷综合久久久| 在线看片成人| 日韩视频二区| 亚洲一区二区黄色| 亚洲一区二区三区高清| 亚洲制服欧美中文字幕中文字幕| 亚洲一区bb| 久久国产手机看片| 久久视频在线免费观看| 免费欧美日韩国产三级电影| 欧美成人有码| 亚洲国内欧美| 中文在线一区| 午夜久久一区| 蜜臀av一级做a爰片久久| 欧美+日本+国产+在线a∨观看| 欧美精品电影在线| 欧美日韩在线免费视频| 国产日韩欧美制服另类| 影音先锋一区| 在线视频欧美日韩精品| 亚洲免费网址| 麻豆国产精品va在线观看不卡 | 欧美专区在线| 欧美成人在线免费视频| 亚洲人在线视频| 亚洲欧美日本另类| 狂野欧美一区| 欧美体内谢she精2性欧美 | 欧美激情网友自拍| 国产精品一区二区久久久| 精品福利电影| 亚洲一二三区在线观看| 久久综合久久综合久久综合| 亚洲黄色在线观看| 欧美一区二区女人| 欧美国产一区二区| 国产精品亚洲综合天堂夜夜| 亚洲日本成人| 久久精品91| 亚洲理论在线观看| 久久性天堂网| 国产伦精品一区二区三区在线观看 | 国产精品综合视频| 亚洲日韩欧美一区二区在线| 亚洲欧美网站| 亚洲国产欧美久久| 久久久久**毛片大全| 欧美视频在线免费看| 亚洲日本成人网| 久久九九国产精品| 亚洲午夜一区二区| 欧美日本一区| 亚洲人成7777| 欧美成人免费观看| 欧美在线高清视频| 国产精品v亚洲精品v日韩精品|