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

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博: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 萬連文 閱讀(2245) 評論(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));
這兩個函數是怎么實現的  回復  更多評論
  
簡歷下載
聯系我

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(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| 久久国产精品99国产精| 亚洲经典在线看| 欧美日韩国产色视频| 中日韩美女免费视频网站在线观看| 中文国产一区| 亚洲精品一区二区三区福利| 欧美日韩精品二区| 欧美在线免费观看| 欧美激情成人在线| 99re热精品| 欧美福利视频| 免费观看日韩av| 午夜天堂精品久久久久| 精品不卡在线| 国产精品伦理| 欧美日韩国产一区二区| 性视频1819p久久| 亚洲精品久久嫩草网站秘色| 亚洲欧洲精品一区二区三区 | 激情丁香综合| 欧美视频在线一区| 欧美巨乳波霸| 麻豆九一精品爱看视频在线观看免费| 最新国产成人在线观看| 国产视频久久| 欧美午夜精品理论片a级大开眼界| 久久成人精品视频| 亚洲一区二区三区四区中文| 久久久久久一区| 久久综合图片| 欧美乱在线观看| 欧美日韩午夜剧场| 欧美人成免费网站| 久久国产精品第一页| 欧美日韩国产系列| 欧美午夜免费| **网站欧美大片在线观看| 在线不卡中文字幕| 91久久久久久久久久久久久| 国产欧美午夜| 9l国产精品久久久久麻豆| 国产日韩av高清| 国产一区二区精品久久| 国产日韩一区| 欧美波霸影院| 亚洲精品欧美在线| 亚洲高清视频一区二区| 亚洲国产成人精品久久| 99热在这里有精品免费| 亚洲午夜精品一区二区| 亚洲精品1区2区| 欧美岛国激情| 欧美午夜激情在线| 亚洲大胆视频| 久久久久青草大香线综合精品| 久久国产精品99国产精| 亚洲第一综合天堂另类专| 久久xxxx精品视频| 国产精品美女在线| 久久久www成人免费毛片麻豆| 亚洲乱码国产乱码精品精| 欧美一区午夜精品| 国产午夜精品视频免费不卡69堂| 在线国产精品播放| 亚洲一区二区三区影院| 国产免费一区二区三区香蕉精| 亚洲美女视频在线观看| 亚洲人午夜精品| 久久久久久网站| 国产美女精品在线| 亚洲最黄网站| 国产精品影视天天线| 亚洲欧美精品一区| 欧美中文字幕不卡| 极品少妇一区二区三区精品视频| 久久av一区二区| 欧美aa国产视频| 欧美影院成人| 玖玖综合伊人| 亚洲黄色影片| 一卡二卡3卡四卡高清精品视频| 国产一区二区中文| 亚洲理论电影网| 激情综合在线| 亚洲三级影院| 国产精品v片在线观看不卡| 亚洲成色777777在线观看影院| 国产精品免费看久久久香蕉| 久久久久久久高潮| 欧美精品v日韩精品v韩国精品v| 99成人精品| 欧美gay视频| 国产综合av| 夜夜嗨av一区二区三区网页| 国产精品成人v| 欧美国产日本| 午夜视频一区在线观看| 欧美午夜精品理论片a级按摩 | 亚洲精品在线免费| 久久一区欧美| 香蕉尹人综合在线观看| 久久国产精品久久久久久| 性18欧美另类| 国产精品久久网站| 一区二区三区高清在线| 国产精品99久久99久久久二8 | 国产精品国产自产拍高清av| 欧美影院视频| 国产揄拍国内精品对白| 亚洲综合色在线| 欧美成人精品1314www| 激情久久婷婷| 欧美另类亚洲| 日韩香蕉视频| 日韩视频一区二区三区在线播放免费观看 | 在线亚洲电影| 欧美日本国产精品| 国产精品区一区二区三区| 久久免费黄色| 欧美gay视频激情| 亚洲精品一区在线观看| 欧美特黄a级高清免费大片a级| 激情文学一区| 欧美在线国产| 亚洲影院在线| 99re66热这里只有精品4| 久久精品女人的天堂av| 欧美一区二区三区久久精品| 国外精品视频| 欧美电影美腿模特1979在线看 | 激情五月婷婷综合| 国产一区高清视频| 亚洲激情视频在线观看| 99伊人成综合| 亚洲欧美成aⅴ人在线观看| 亚洲一区二区三区精品动漫| 小嫩嫩精品导航| 欧美高清在线一区| 中文网丁香综合网| 久久免费视频在线观看| 国产精品久久久久一区二区三区共| 国产欧美精品久久| 日韩小视频在线观看| 久久久久久噜噜噜久久久精品| 亚洲视频在线观看网站| 久久本道综合色狠狠五月| 在线播放亚洲| 在线国产亚洲欧美| 欧美 日韩 国产一区二区在线视频 | 欧美国产第一页| 亚洲国产欧美一区| 久久精选视频| 久久久久女教师免费一区| 欧美午夜电影在线观看| 亚洲国产专区| 久久精彩视频| 欧美日韩视频| 亚洲国产精品毛片| 亚洲国产成人在线| 欧美成人午夜77777| 久久人人爽人人爽爽久久| 国产精品亚洲综合| 亚洲成人在线视频播放| 亚洲美女淫视频| 欧美激情在线有限公司| 亚洲娇小video精品| 亚洲人妖在线| 欧美成人资源网| 亚洲黄色视屏| 一区二区欧美亚洲| 欧美视频网站| 午夜精品免费在线| 久久久久久久久久久久久女国产乱| 国产精品亚洲精品| 久久成人人人人精品欧| 久色婷婷小香蕉久久| 亚洲国产精品一区二区www在线| 久久香蕉精品| 亚洲国产日韩欧美在线99| 亚洲精品一区在线观看| 国产精品视频一区二区三区 | 亚洲视频香蕉人妖| 亚洲欧美精品在线观看| 国产女人精品视频| 久久精品99无色码中文字幕| 另类尿喷潮videofree| 午夜精品亚洲一区二区三区嫩草| 久久米奇亚洲| 国产日韩欧美在线播放| 久久综合网色—综合色88| 日韩一区二区电影网| 久久精品视频网| 亚洲精品在线视频| 国产精品成人国产乱一区| 欧美在线中文字幕| 日韩亚洲欧美高清| 亚洲电影中文字幕| 欧美综合国产| 夜夜精品视频|