1. 扩展名是inc的是什么文件? 其中有下面这一段,是不是ole32.dll中一个函数的声明。
[
    dllname("OLE32.DLL"),
    helpstring("Storage functions")
]
module ole32 {    [entry("CoCreateInstance")]
    LONG CoCreateInstance(
        [in] UUID *CLSID,
        [in] stdole.IUnknown *pUnkOuter,
        [in] CLSCTX dwClsContext,
        [in] UUID *IID,
        [out] void *ppv);
}
2.由一堆inc生成的tlb是什么文件?是用什么工具生成的?为什么在vb6中我引用后可直接使用CoCreateInstance方法,在.net中引用后就没有这个方法可用。3.我要用这个方法的话如何声明这个方法,特别是最后的那个方法指针
[DllImport("OLE32.DLL")]
public static extern int CoCreateInstance( UUID CLSID,stdole.IUnknown pUnkOuter, CLSCTX dwClsContext, UUID *IID, //[out] void *ppv);

解决方案 »

  1.   

    TLB是一种OLE(或ActiveX)定义文件,它包括常数、接口(Interface)、类等的定义。你可以在VB的集成环境的Project|Reference中将TLB文件加入项目,然后在Object Browser中看到该文件中包括哪些常数、接口、类,而每个类又包括什么方法和属性。微软提供的各种SDK中通常包括一个或数个TLB文件以方便编程。你也可以制作TLB文件,首先编写一个ODL文件(在VC++的帮助中有语法说明),然后使用MKTYPLIB(在VB光盘上有)编译生成TLB文件。类似的文件,还有Office所提供的OLB文件。这个tlb我也只在vb里用过。c#里。你可以忽略这些,调用com很容易。添加引用,选择com组件,选中OLE32或者浏览OLE32.dll。然后看看多了哪个ax开头的命名空间。对照的用那个命名空间的类就可以了。
      

  2.   

    tlb是com的一种文件,楼上的解释啦。
      

  3.   

    wuyazhe(经常答错,欢迎指正。) 我增加ole32.dll的引用时,报错说"未能添加对c:\windows\system32\ole32.dll的引用,请确保此文件可访问并且是一个有效的程序集或com组件"请问如何解决.
    另我有一vb6写的工程引用了上文的tlb文件运行正常没有这个问题.
      

  4.   

    各位老大,我在网上看到的COM引用是如下这样的,我本机有ole32.dll文件,但在com引用中没有这个东东,如何把ole32.dll加到.net的com引用类中呢?    [ComVisible(true), ComImport(), Guid("0000013A-0000-0000-C000-000000000046"),  InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        public interface IPropertySetStorage
        {
            uint Create(
                [In, MarshalAs(UnmanagedType.Struct)] ref System.Guid rfmtid,
                [In] IntPtr pclsid,
                [In] int grfFlags,
                [In] int grfMode,
                ref IPropertyStorage propertyStorage);
            int Open(
                [In, MarshalAs(UnmanagedType.Struct)] ref System.Guid rfmtid,
                [In] int grfMode,
                [Out] IPropertyStorage propertyStorage);
        }
      

  5.   

    我还是建议lz这样吧
    先用vb.net写个d程序集出来给C#引用vb.net的写法就和你vb6差不多的