1 Cree una nueva biblioteca de clases MyTestDLL
2 Haga clic derecho en el proyecto "MyTestDLL"-"Propiedades-"Generar-"Marcar "Registrarse para interoperabilidad COM"
3 Abra el archivo AssemblyInfo.cs y modifique [ensamblaje: ComVisible(true)]
4 Abra la herramienta de símbolo del sistema de Visual Sutdio 2008, ingrese guidgen.exe, seleccione DEFINE_GUID y haga clic en "Nuevo GUID"
5 códigos
1. Cada nombre de clase corresponde a un nombre de interfaz. El nombre de la interfaz es el nombre de la clase más una I mayúscula.
2. El método declarado en la interfaz debe utilizar el atributo [DispId(n)]
3. La clase debe tener un constructor sin parámetros.
Código
usando Sistema;
usando System.Collections.Generic;
usando System.Linq;
usando System.Text;
usando System.Runtime.InteropServices;
espacio de nombres MyTestDll
{
//El Guid aquí se genera en el paso 4.
[Guía ("FFA4B191-FB5B-4dd5-B7B1-B2F32BF6F1FF")]
interfaz pública IMyTestDll
{
[IdDisp(0)]
cadena GetAbout();
}
clase pública Prueba1:IMyTestDll
{
Resumen de cadena privada;
prueba pública1()
{
resumen = "Esta es mi primera prueba";
}
cadena pública GetAbout()
{
resumen de devolución;
}
}
}
6 Generar proyecto
código de prueba asp
<%
tenue o
Establecer o = Server.CreateObject("MyTestDll.Test1")
Respuesta.Escribir o.GetAbout()
Establecer o=Nada
%>
Consejo: si desea utilizar el componente COM que desarrollamos en C# en otras computadoras, también debe registrarlo con regasm.
El método es:
Primero, copie los archivos en el directorio binDebug a la computadora de destino, luego abra la herramienta del símbolo del sistema e ingrese:
regasm El directorio/filename.dll que copiaste en /tlb f:/dll/filename.tlb /codebase
Se puede ejecutar en esta computadora.
Referencias:
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
-