1 สร้างไลบรารีคลาสใหม่ MyTestDLL
2 คลิกขวาที่โครงการ "MyTestDLL"-"Properties-"Generate-"ตรวจสอบ "Register for COM interop"
3 เปิดไฟล์ AssemblyInfo.cs และแก้ไข [assembly: ComVisible(true)]
4 เปิดเครื่องมือพร้อมรับคำสั่งของ Visual Sutdio 2008 ป้อน guidgen.exe เลือก DEFINE_GUID แล้วคลิก "New GUID"
5 รหัส
1. ชื่อคลาสแต่ละรายการสอดคล้องกับชื่ออินเทอร์เฟซ ชื่อคลาสคือชื่อคลาสบวกด้วยตัวพิมพ์ใหญ่ I
2. วิธีการประกาศในอินเทอร์เฟซต้องใช้แอตทริบิวต์ [DispId(n)]
3. คลาสจะต้องมีตัวสร้างแบบไม่มีพารามิเตอร์
รหัส
ใช้ระบบ;
ใช้ System.Collections.Generic;
ใช้ System.Linq;
ใช้ System.Text;
โดยใช้ System.Runtime.InteropServices;
เนมสเปซ MyTestDll
-
//Guid ที่นี่ถูกสร้างขึ้นในขั้นตอนที่ 4
[ไกด์("FFA4B191-FB5B-4dd5-B7B1-B2F32BF6F1FF")]
อินเทอร์เฟซสาธารณะ IMyTestDll
-
[รหัสประจำตัว(0)]
สตริง GetAbout();
-
คลาสสาธารณะ Test1:IMyTestDll
-
สรุปสตริงส่วนตัว
สาธารณะทดสอบ1()
-
summary = "นี่คือการทดสอบครั้งแรกของฉัน";
-
สตริงสาธารณะ GetAbout()
-
สรุปการส่งคืน;
-
-
-
6 สร้างโครงการ
รหัสทดสอบ asp
-
ดิม โอ
ตั้ง o = Server.CreateObject("MyTestDll.Test1")
ตอบกลับเขียน o.GetAbout()
ตั้ง o=ไม่มีอะไร
-
เคล็ดลับ: หากคุณต้องการใช้ส่วนประกอบ COM ที่เราพัฒนาใน C# บนคอมพิวเตอร์เครื่องอื่น คุณจะต้องลงทะเบียนส่วนประกอบนั้นด้วย regasm
วิธีการคือ:
ขั้นแรก ให้คัดลอกไฟล์ในไดเร็กทอรี binDebug ไปยังคอมพิวเตอร์เป้าหมาย จากนั้นเปิดเครื่องมือพร้อมท์คำสั่งแล้วป้อน:
regasm ไดเร็กทอรี/filename.dll ที่คุณคัดลอกไปที่ /tlb f:/dll/filename.tlb /codebase
มันสามารถทำงานบนคอมพิวเตอร์เครื่องนี้
อ้างอิง:
http://topic.csdn.net/u/20080625/13/0294fe91-200c-4939-b36b-c9a2c6781354.html
http://topic.csdn.net/t/20060314/15/4613620.html
http://cplus.e800.com.cn/articles/2009/211/1234338268521_3.html
http://topic.csdn.net/t/20020712/10/868557.html
http://www.itzhe.cn/news/20071123/21768.html
http://www.cnblogs.com/illele/archive/2007/10/25/937050.html
-