2009-04-15 12 views
1

C#.NET 2.0でCOM呼び出し可能DLLを作成し、.NET regasmツールを使用してアセンブリからTLB を作成しました。.NET DLLをBorland C++ Builder 4で使用するときの問題

Borland C++ Builder 4.0では、Project-> Import Type Library->に行き、 私のDLLのタイプライブラリを見つけて「OK」をクリックしてインポートします。

BCBはHardwareCheck_TLB.cpp & HardwareCheck_TLB.hファイルを作成します。

私はDLLを使用したいプロジェクトのcppファイルに入れます: #include "HardwareCheck_TLB.h" が先頭にあります。

コードで、その型のオブジェクトをコードで宣言しようとすると、次のようになります。 IHardwareCheck hc = new IHardwareCheck();

[C++エラー] Unit1.cpp(22):E2352抽象度 クラス 'IHardwareCheck'のインスタンスを作成できません。 [C++エラー] Unit1.cpp(22):E2353クラス 'IHardwareCheck'が '__stdcall IHardwareCheck :: IsExpress(wchar_t * *、TOLEBOOL *)= 0'のため、抽象的 です。

誰もがこのエラーを取り除く方法を知っていますか?

ありがとうございます!

答えて

0

それはあなたがボーランドは、その製品を配布しtlibimp.exeを見ているかもしれ

CoHardwareCheck::Create(&hc) 

を行うことができますいくつかのTCoClassCreatorT <>種類を生成する必要があります。私はその前にこのプログラムを経験したことがありますが、Coクラスを生成することはできませんでした。多分あなたはもっと良い運があるでしょう。

2

新規作成でCOMクラッシックを作成することはできません。 CoCreateInstanceシステムコール(MSDNを参照)またはBorlandが提供するいくつかのラッパー(zer0_ringで指定されたものなど)を使用する必要があります。

関連する問題