●ウィザードで「Win32ダイナミックリンクライブラリ」のプロジェクトを作ります。 プロジェクト名を「makedll」とします。 ステップ1では「シンボルをエクスポートする」を選択しておきます。 FileViewでmakedll.hを次のように書き換えます。 以下が全行です。 makedll.cppの方は 以下が全行です。 とします。 makedll.defは以下のようにします。 テキストファイルで作成し、ファイル名をmakedll.defと変えておきます。 そしてこのファイルを忘れずにプロジェクトに追加しておきます。ファイルビューの所で「makedll ファイル」を右クリックしてから行えます。 以下が全行です。 後はビルドするだけで、DLLが作成されます。 コピペして張り付けるとスペースが全角になっていますので半角に変えてくださいね。 ●VBからは、VBのプロジェクトホルダにDLLをコピーしておき、標準モジュールで Option Explicitと定義して、適当なイベントハンドラで Private Sub Command1_Click()と呼びだせれば成功です。 ここからサンプルをダウンロードできます。 |
●新しく「Moto」プロジェクトで、CObjectクラスを親クラスにしたMydllクラスを作成して、次にその中に単純なTasuメンバ関数を追加する。 使用してみて、実行できればOK。 ●次にこのMydllクラスのTasu関数をdllにする。 ここでは、MFCレギュラーDLLを作成する。 ウィザードで「MFCの共有~」を選択すること。 名前を「makedll」プロジェクトにする。 先の「Moto」プロジェクトからMydll.h、Mydll.cppをコピーして「makedll」プロジェクトへ貼り付け、プロジェクトへ追加する。 FileViewにMydll.h、Mydll.cppが表示される。 Mydll.hからクラスの定義は全てコメントアウトして、全て関数に書き換える。 Mydll.cppの方も書き換える。
モジュール定義ファイルを作成する。 FileViewの中にmakedll.defがあるのでそれにエクスポートする関数を書き込む。 ビルドするとDLLが完成する。 コピペして張り付けるとスペースが全角になっていますので半角に変えてくださいね。 同時にlibファイルもできる。LibフィルもDllを使用する時に必要になるで注意すること。 ●VC++6からDLLの使用方法。 ダイアログベースの雛形をウィザードで作成した後、一度ビルドしておく。 作成したDllファイル、libファイルを「Debug」フォルダに貼り付ける。 メニューから「プロジェクト」「プロジェクトへ追加」ダイアログで、ファイルの種類をlibにして、今貼り付けたlibファイルを追加する。 次に、Mydll.hも、コピーして貼り付ける。同じくプロジェクトへ追加する。 ヘッダーをインクルードする。(使うファイルのcppでインクルードしておく。) #include "stdafx.h"使用方法。 直にTasu関数を呼び出すことができます。 char ret[20];以上。 ●VBから呼び出して使用する方法はWin32dllの呼び出しと同じである。 また、VB.netからも使うことができる。 その場合変数の取り扱いに注意する必要があり、Declare部分でLongとintなどの読み替え書き換えを行う。 サンプルでは、VCのプロジェクト名「mfcdll」、作成したdllファイル名が「mfcdll.dll」となっています。 読み替えてください。 ここからサンプルのダウンロードができます。 |
書かれている通りに作っていけばとりあえずはできます。
基本のダイアログベースから、マルチスレッド、DLLの作り方まで紹介されています。 辞書的に使用可。 残念ながら、新品はありません。でもすごく安く出品されています。 |