我有一个.NET库,我想用COM包装它来从C ++调用它的函数。幸运的是,这个库是开源的,如果我在这个项目中添加COM-visible类 - 它可以工作:
[Guid("38F752CC-20F1-4729-B1E3-EE0AAD145052")]
public interface IQRCodeUI
{
string GetDecodedString(string encodedString);
}
[Guid("D4CFCDFA-6718-494D-A23F-EBC0F9550377")]
public class QRCodeUI : IQRCodeUI
{
public string GetDecodedString(string encodedString)
{
return decoder.decode(encodedString);
}
}
decoder
是这个库中的一个类。
但是如果我编译汇编会怎么办?我尝试创建类库(COM)并将.NET库作为嵌入式资源添加到其中。没有结果!在编译期间,它说cannot register assembly "path\name". Cannot load file or assembly "nameOfAssembly" or its dependency. Cannot find the file.
Apologize,我无法提供错误的原始文本,因为我的MSVS语言与英语不同。有可能解决这个问题吗?
答案 0 :(得分:0)
如果您的任务是通过COM从C ++调用.NET库,那么为什么要将.NET库作为嵌入式资源添加到某个新的COM类库中呢?
只需使现有的第三方程序集COM可见,然后从C ++,VB6等中调用它。
互联网上有很多关于如何使.NET程序集COM可见的文档。我记得,其中没有一个包含将.NET程序集嵌入COM类程序集的建议。