我正在尝试创建互操作dll。
两种方法,1。使用C#程序,2。Coomand line
1. C#程序:
public class ConversionEventHandler : ITypeLibImporterNotifySink
{
public void ReportEvent(ImporterEventKind eventKind, int eventCode, string eventMsg)
{
// Console.WriteLine("{0}", eventMsg);
}
public Assembly ResolveRef(object typeLib)
{
return null
}
}
Object typeLib;
LoadTypeLibEx(@"C:\Windows\SysWOW64\activeds.tlb", RegKind.RegKind_None, out typeLib);
Version v = new Version(1, 0, 0, 0);
TypeLibConverter tlbConv = new TypeLibConverter();
AssemblyBuilder asm = tlbConv.ConvertTypeLibToAssembly(typeLib, "outDll", 0,new ConversionEventHandler(), null, null, rootNamespace, v);
asm.Save("outDll");
此问题附带了未知的应该提供inResolveRef方法。
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin> TlbImp.exe C:\ Windows \ SysWOW64 \ activeds.tlb out:test.dll
这是有效的,但我需要使用C#运行上面的命令。
任何人都可以告诉我如何做到这一点吗?
提前致谢