2
如何將COM服務器轉換爲CLR程序集,以便我不必首先重寫任何內容。如何將COM程序集轉換爲CLR程序集?
如何將COM服務器轉換爲CLR程序集,以便我不必首先重寫任何內容。如何將COM程序集轉換爲CLR程序集?
我在這裏發佈了這個OP,因爲他們把它作爲一個編輯來發布。
而不是在.NET中重寫COM服務器(用C++/MFC編寫),我決定將它轉換爲CLR程序集。要採用COM程序集(add32.exe)並從.Net客戶端使用它,我們需要創建一個可調用的包裝器。使用Visual Studio命令提示符(以管理員身份)運行所有工具。
步驟1:註冊一個COM組件具有強名稱
步驟2:轉換在COM類型庫中找到的定義爲CLR組件
轉換的定義使用工具Tlbimp.exe在COM類型庫中找到CLR程序集。 Tlbimp.exe的輸出是一個二進制文件(程序集),其中包含原始類型庫中定義的類型的運行時元數據。輸出是一個DLL文件。我指定了一個名稱空間,以便我們可以輕鬆地將元數據包含在.Net COM客戶端中。
步驟3:使用程序Ildasm.exe來查看組件。
要使用CLR程序集,我們打造的解決方案,它的參考。瀏覽該dll文件並將其添加爲參考。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Add32Pkg;
namespace TestAdd32
{
class Program
{
[STAThread]
static void Main(string[] args)
{
Add32Server Add32 = new Add32Server();
Add32.Init(201);
}
}
}
這是否意味着爲:使用COM對象
客戶應使用步驟創建的命名空間2
然後,使用COM功能導入元數據一個(非常好,全面)自我回答?因爲它無論如何都缺少一個問題! – Widor 2012-04-12 15:45:31
這是我提供一個文件,說明我是如何將COM程序集轉換爲CLR程序集的。只是想與社區分享。 – 2012-04-12 16:05:29
這很好(並鼓勵) - 這只是'[更好的禮儀](http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-those-wherei-i-知道答案之前問)'問問題,你的信息回答,然後回答你自己的問題。這允許兩件事 - 其他人可以添加潛在更好的答案,尋找答案的人可以更容易地搜索。 – Widor 2012-04-12 16:33:40