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);
[
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);
另我有一vb6写的工程引用了上文的tlb文件运行正常没有这个问题.
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);
}
先用vb.net写个d程序集出来给C#引用vb.net的写法就和你vb6差不多的