最近ネットユーザーからの質問が多いので、簡単にまとめておきます。ご質問がございましたら、コメントに残してください。
1. 新しい DLL を作成する
VB6 を開く --> ファイル --> 新しいプロジェクト --> ActiveX DLL を選択 --> OK
2. デフォルトのプロジェクトとクラスの名前を変更します
プロジェクト名の変更: プロジェクト --> プロジェクト 1 プロパティ (この名前はフォーム内のプロジェクト名に対応します) --> 開くダイアログ ボックスで「プロジェクト名」を ASP2DLL に名前変更します (DLL コンポーネントがシステムに登録された後、 ASP のデフォルトの呼び出しメソッドは "プロジェクト名.クラス名") --> OK
クラス名の変更 プロパティウィンドウで名前を「Demo」に変更します。
3. ASP基本オブジェクトを定義する
モジュールの追加: プロジェクト --> モジュールの追加 --> 「モジュール」を選択 --> 開く
モジュールの名前を変更します。プロパティ ウィンドウで、[プロジェクト エクスプローラー]-->[モジュール]--[モジュール 1]-->[モジュール 1] の名前を「ASPMod」に変更します。
モジュール コードを追加します。このコードは、vb でカプセル化されたほとんどすべての asp DLL コンポーネントに適用できます。ASP2DLL をプロジェクト名に変更するか、呼び出し時に一貫性を保つだけです。
次のようにコードをコピーします。
ObjectContext としてのパブリック objContext
ASPTypeLibrary.Application としてのパブリック アプリケーション
ASPTypeLibrary.Server としてのパブリック サーバー
ASPTypeLibrary.Session としてのパブリック セッション
ASPTypeLibrary.Response としてのパブリック応答
ASPTypeLibrary.Request としてのパブリック リクエスト
パブリック サブ ASP2DLL_Initialize()
エラー時は次へ再開
objContext = GetObjectContext を設定します
アプリケーション = objContext.Item("アプリケーション") を設定します
サーバー = objContext.Item("サーバー") を設定します
Set Session = objContext.Item("セッション")
リクエスト = objContext.Item("リクエスト") を設定します
応答を設定 = objContext.Item("応答")
エンドサブ
パブリック サブ ASP2DLL_Terminate()
エラー時は次へ再開
アプリケーションを何も設定しない
サーバー = 何も設定しない
セッション = なしを設定します
リクエスト = なしを設定
応答 = なしを設定
objContext = なしを設定します
エンドサブ
パブリック関数 Eval(ByRef strEval)
新しい ScriptControl としての Dim EvalObject
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
EvalObject = なしを設定します
終了機能
4. 新しく作成した DLL を保存します
ファイル --> プロジェクトを保存、最後まで確認し、すべてのモジュール、クラス モジュール、およびプロジェクト ファイルを 1 つのフォルダーに保存します
5. クラスモジュールで ASP オブジェクトを呼び出す
「プロジェクト エクスプローラー」 --> 「クラス モジュール」 --> 「デモ」をダブルクリックして、デモ クラス モジュール コード エディターに切り替え、コードを貼り付け、クラス呼び出しとクラス破棄を初期化します。コードは次のとおりです。
次のようにコードをコピーします。
プライベートサブクラス_Initialize()
ASP2DLL_初期化
エンドサブ
プライベートサブクラス_Terminate()
ASP2DLL_Terminate
エンドサブ
この時点で、基本的な DLL フレームワークが完成しました。これで、必要に応じてカプセル化された関数を完成させることができます。
6. 新しいテスト関数を作成する
次の 2 つのテスト関数を Demo クラス モジュールの下に貼り付けます。
次のようにコードをコピーします。
パブリックサブ hello()
Response.Write (「Hello World!」)
出口サブ
エンドサブ
7. DLLのコンパイルと生成
[ファイル] --> [ASP2DLL.dll の生成] --> プロジェクトが存在するフォルダーを選択して確認し、[OK] をクリックします。この時点でエラー メッセージが表示されなければ、DLL コンポーネントが正常にコンパイルされたことになります。
8. コンポーネントの登録とアンインストール
ASP2DLL.dll コンポーネントが存在するディレクトリに作成されます
「Registration.bat」バッチ ファイルには、次のように入力します。
次のようにコードをコピーします。
iisリセット/停止
regsvr32/sASP2DLL.dll
iisリセット/スタート
「Uninstall.bat」バッチ ファイルには、次のように入力します。
次のようにコードをコピーします。
iisリセット/停止
regsvr32 /u /sASP2DLL.dll
iisリセット/スタート
ダブルクリックして、registration.bat を実行します。登録が成功すると、「ASP2DLL.dll の DllRegisterServer が成功しました。」というメッセージが表示されます。
9. 新しくカプセル化された DLL コンポーネントを呼び出し、ASP プログラムで関数をテストします。
ステップ 2 では、「DLL コンポーネントがシステムに登録されるとき、ASP のデフォルトの呼び出しメソッドは 'プロジェクト名.クラス名'」であることがわかっているため、オブジェクトは次のように作成する必要があります: set Obj = Server.CreateObject (「プロジェクト名.クラス名」)、コードは次のとおりです。
次のようにコードをコピーします。
<%
DimASP2DLL
ASP2DLL = Server.CreateObject("ASP2DLL.Demo") を設定します。
ASP2DLL.hello()
SetASP2DLL = なし
%>
10. プロジェクト ファイルとすべての関連コンテンツを含むパッケージ ダウンロード リンク (20110221 更新ダウンロード リンク) パッケージ ダウンロード
DLL をコンパイルするときに注意すべき点がいくつかあります。
1. VB の予約キーワードを関数名または変数名として使用しないでください。
2. 通常の Vbscript 関数と Eval などの一部の Vbscript 関数では、「プロジェクト --> リファレンス --> Microsoft Script Control 1.0」および「Microsoft VBScript Regular Expressions 5.5」をロードする必要があります。
3. カプセル化では本質的な速度向上は実現できず、仮想ホストとリモート サーバーにはコンポーネントの登録権限が必要です。
4. 既存のコンポーネント名または変更された DLL ファイルの場合は、まず IIS を停止し、次に IIS を再起動して DLL コンポーネントを登録する必要があります。
5. VB6 SP6 合理化されたグリーン バージョンのダウンロード リンク
原文の投稿元:?cateID=20 作者の努力に感謝します。内容は素晴らしいですが、ウェブサイトへのアクセスが遅すぎます。