○簡単なActiveX.DLLの作成
①適当な名前を付けて新しいプロジェクトを作成します
②そのまま完了を押します
③メニューのプロジェクト→クラスの追加にて、ATLシンプルオブジェクトを開きます
④ウィザードが表示されますので適当な名前(test)を入力して完了ボタンを押します
⑤クラスビューのItestを選択し右クリックにてプロパティの追加を選択します。
⑥メソッド追加ウィザードが表示されますので適当なメソッド名(str)を入力して、
プロパティーの種類にBSTRを選択して完了を押します
⑦test.cppに以下のコードが生成されています
STDMETHODIMP Ctest::get_str(BSTR* pVal)
{
// TODO: ここに実装コードを追加してください。
return S_OK;
}
STDMETHODIMP Ctest::put_str(BSTR newVal)
{
// TODO: ここに実装コードを追加してください。
return S_OK;
}
⑧生成されたコードをカスタマイズします
put_strにて文字列を入力してget_strにて”テスト”という文字列を付けて返すようにします。
CComBSTR cbstr;
STDMETHODIMP Ctest::get_str(BSTR* pVal)
{
cbstr.Append(_T("テスト"));
*pVal=cbstr.Copy();
return S_OK;
}
STDMETHODIMP Ctest::put_str(BSTR newVal)
{
cbstr=newVal;
return S_OK;
}
⑨ビルドして完成です
⑩作成したコンポーネントをVBで呼び出す
参照設定にて参照します
Dim obj As New first.CtestClass()
obj.str = "いなば"
Dim pos As String = obj.str
Debug.WriteLine(pos)
結果
いなばテスト
■二つの値を入力できて、値を返すメソッドの作成
①クラスビューのItestを選択し右クリックにてメソッドの追加を選択します
②メソッド名、パラメータ一覧、パラメータ名を入力し、追加ボタンを押しながらメソッドの形を作ってゆきます
③生成されたコードを編集します
入力された値の a に 1 を足して b に返すという処理です。
STDMETHODIMP Ctest::add(LONG* a, LONG* b)
{
long i=*a;
i++;
*b=i;
return S_OK;
}
▲トップページ
>
Windows と C++