在VB中 定义了一个自定义接口 ,
(工程DogLib下建立了一个PublicNotCreate的抽象类IDog)在vb中可以这样引用他:
DogLib.IDog在VC中怎么获得他的IID,
提供一个函数更好
如:
HRESULT GetIIDFromStr("DogLib.IDog");系统有一个函数 为IIDFromString( LPOLESTR lpsz, LPIID lpiid)好像没有用啊。
这个函数里的lpsz 指的是什么?
(工程DogLib下建立了一个PublicNotCreate的抽象类IDog)在vb中可以这样引用他:
DogLib.IDog在VC中怎么获得他的IID,
提供一个函数更好
如:
HRESULT GetIIDFromStr("DogLib.IDog");系统有一个函数 为IIDFromString( LPOLESTR lpsz, LPIID lpiid)好像没有用啊。
这个函数里的lpsz 指的是什么?
谢谢
取得接口的id也用clsidfromprogid吗?
QueryInterface 是iid :: __uuidof( Ixxxx)
终于实现了.不过要使用import用vb创建一个接口有一个很大的缺点,
使用publicnocreated创建出来得接口是隐藏的,而且会带一个没有用的共同类
而且如果没有一个课创建的类的话,还不能编译。所以还得加一个没有用的实现。所以最后我采用了另一种办法直接写一个IDL文件,用midl 编译 在添加生成选项,让他输出 tlb,h,iid,
在vc中我直接引用.h,包含iid的头文件
在vb中实现他的时候,我引用这个tlb,用implements 库.接口这样就不用使用import了。
就像用directx一样,用上头和库就行了。总之谢谢各位。