我在C#.NET 2.0中创建了COM可调用的DLL,并创建了TLB
使用.NET regasm工具从装配中删除。

在Borland C++ Builder 4.0中,我转到Project-> Import Type Library->,然后
在此处找到我的DLL的类型库,然后单击“确定”将其导入。

BCB创建一个HardwareCheck_TLB.cpp和HardwareCheck_TLB.h文件。

在项目的cpp文件中,我要使用放置的DLL:
#include“HardwareCheck_TLB.h”
在顶部。

然后在代码中,如果我尝试在代码中声明该类型的对象:
IHardwareCheck hc =新的IHardwareCheck();

我收到以下编译器错误:
[C++错误] Unit1.cpp(22):E2352无法创建抽象实例
类“IHardwareCheck”。
[C++错误] Unit1.cpp(22):E2353类“IHardwareCheck”是抽象的
因为'__stdcall IHardwareCheck::IsExpress(wchar_t * *,TOLEBOOL
*)= 0'。

任何人都有任何想法如何摆脱这个错误?

谢谢!

最佳答案

无法使用new创建COM分类。您需要使用CoCreateInstance系统调用(请参阅MSDN)或Borland提供的某些包装器(例如zer0_ring提到的包装器)。

09-30 14:46