如何在运行时使用tlbimp.exe,C#

时间:2016-06-29 07:03:45

标签: c# .net

我正在尝试创建互操作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方法。

  1. 命令行: 使用Developer Coomand Prompt for VS:
  2.   

    C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin> TlbImp.exe   C:\ Windows \ SysWOW64 \ activeds.tlb out:test.dll

    这是有效的,但我需要使用C#运行上面的命令。

    任何人都可以告诉我如何做到这一点吗?

    提前致谢

0 个答案:

没有答案