掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveX DLLを呼び出すには? (ID:64234)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。 Visual Basic 6.0のActiveX DLLとして作成したCOMコンポーネントを、 C言語クライアントからアクセスしようと試みています。 DLLファイル名は"Project1.dll"で、C言語で作成した呼び出し用の exeファイルと同じ場所に置いています。 ActiveX DLLの概要は以下の通りです。 プロジェクトの種類:ActiveX DLL プロジェクト名:Project1 クラスモジュール名:Class1 'メソッドCalc Public Function Calc(ByVal x As Long, ByVal y As Long) As Long Calc = x + y End Function C言語からは以下のプログラムにて呼び出そうとしていますが、 ::CoCreateInstance関数の返り値が、どうしても 「0x80040154 クラスが登録されていません」という結果になります。 何が原因なのかご教授お願いします。 ちなみにC言語の環境は、Visual C++.NET(2003)です。 #include "stdio.h" #include "windows.h" #include "objbase.h" #import "project1.dll" no_namespace named_guids raw_interfaces_only int main(int argc, char* argv[]) { long x, y, z; HRESULT hResult; _Class1* pClass1; ::CoInitialize(0); hResult = ::CoCreateInstance((REFCLSID)CLSID_Class1, 0, CLSCTX_INPROC_SERVER, (REFIID)IID__Class1, (LPVOID*)&pClass1); if( ! SUCCEEDED(hResult) ) { printf("ERROR occured = %08x\n", hResult); return 0; } x = 10; y = 20; pClass1->Calc( x, y, &z ); printf("Result = %d\n", z ); pClass1->Release(); ::CoUninitialize(); return 0; } 以上、宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.