我有一個用unmanged C++編寫的COM DLL,並且用VS 2010進行編譯。我可以使用regsvr32註冊DLL,我可以通過VBscript調用它。tlbimp做哪些Visual Studio IDE沒有做什麼?
當我嘗試添加對它的引用時,創建一個C#客戶端時,我看不到添加引用 - > COM選項卡中列出的COM對象。如果我手動瀏覽到DLL並嘗試選擇它,則表示該DLL不是有效的斷言或COM組件。
現在,我可以使用tlbimp工具生成一個interop DLL,並使用它作爲參考添加到我的C#客戶端。一切正常。
我的問題是:
- 爲什麼當它通過REGSVR32註冊原COM沒有在COM選項卡中列出在Add Reference對話框?
- 爲什麼VS IDE認爲它不是一個有效的COM,我可以從VBScript和C++本機代碼調用它?
- tlbimp究竟做了哪些IDE無法做到的事情?
- 爲了提高我對 類型庫和互操作性的理解,我需要進一步閱讀什麼內容?