私は COM を初めて使用するので、これはばかげた質問かもしれませんが、とにかく質問します。:)
私が理解している限りでは、DLL COM を作成するには、そのインターフェイスを .idl ファイルで定義し、MIDL コンパイラでコンパイルしてから、定義されたインターフェイスを使用するクラスを実装するだけです。DllRegisterServer
次に、 、DllUnregisterServer
およびを公開する必要がありDllGetClassObject
ます。それで十分なはずですよね?
しかし、私はこれをすべて実行し、クライアント C++ プログラムでそれをチェックしようとすると、私のビジュアル スタジオは (#import ステートメントで) tlh ファイルが見つからないと言います...
これは私の .idl がどのように見えるかです:
import "someIdl.idl";
[
uuid(some-guid-Num1),
version(1.0),
helpstring("The library's description")
]
library LibName
{
importlib("stdole2.tlb");
[
uuid(some-guid-Num2),
helpstring("Some Description")
]
coclass ClassName
{
interface Interface_defined_in_someIdl;
}
};
.idl に何か不足していますか? COM の作成プロセスを間違えたのでしょうか?