假设我有以下定义:
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 无法导入类型库。我应该如何正确地生成 tlbs(用 regasm 检查)并且需要以某种方式定义 A2.tlb 取决于 tlb1 ?我在这里看到了相关的帖子,我知道打开 oleview 可以在本地解决问题,但我需要更通用的解决方案(这将在构建服务器上工作)提前致谢