假设我有以下定义:
namespace BaseIfsNamespace //defined in assembly A1
{
[ComVisible(true)]
[Guid("2E6CB2B7-8884-4250-87A5-83BF52EE5D29")]
public interface BaseIfs
{
void TestM(string s1);
}
}
和
namespace DerivedCom //defined in assembly A2
{
[ComVisible(true)]
[ProgId("DerivedCom.DerivedCom")]
[Guid("AC01FD21-4708-4296-9B2E-B268BC1D880B")]
//[ClassInterface.None]
public class DerivedCom : BaseIfs
{
public void TestM(string s1)
{
//Some implementation
}
}
}
我相应地生成类型库A1.tlb和A2.tlb。但是当我在C ++客户端代码中使用A2时
#import "c:\path11\DerivedCom.tlb" no_namespace raw_interface_only
我收到错误c1084无法导入typelibrary。 我应该如何正确生成tlbs(用regasm检查)并且需要以某种方式定义A2.tlb依赖于tlb1? 我看到相关的帖子here,我知道开放的oleview可以在本地解决问题,但我需要更常见的解决方案(这将在构建服务器上工作) 提前致谢