出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

dllのincludeについて   リコさん [2002/07/29 11:44:21] [2371]
  Re:dllのincludeについて   北岳さん [2002/07/29 13:21:49] [2372]
    Re:dllのincludeについて   リコさん [2002/07/29 14:08:44] [2373]
      Re:dllのincludeについて   北岳さん [2002/07/29 15:29:19] [2375]
        Re:dllのincludeについて   リコさん [2002/07/31 11:27:42] [2384]

[2371] dllのincludeについて
投稿者:リコさん 2002/07/29 11:44:21
はじめまして。
現在asp&VBscriptでページを作成しています。
あるdllをインクルードして、
dll内のクラスを使いたいのですが、どのようにすれば
可能でしょうか。
***たとえば**********************************
clsTest1・clsTest2・clsTest3 といういくつかの
クラスがまとめられているTestCommon.dllファイルを
includeしてclsTest1を使用したい場合。

<!-- include File = "TestCommon.dll">
Dim clsTCommon
*********************************************
・・・・この先がいろいろ試したのですが、エラーが
連発されてしまって・・・。
どなたか分かる方がいらっしゃいましたら、
教えて下さい。お願いします。m(__)m



[2372] Re:dllのincludeについて
投稿者:北岳さん 2002/07/29 13:21:49
ASPはバイナリコードを解釈しません。
ASPで使うincudeファイルは、ASPファイルと同じテキストファイルです。
ref: [1103] 【解答例その4】インクルード・ファイル
 
c:\winnt\system32\regsvr32 なんとか.dll
でレジストリ登録して、ASPからServer.CreateObject("オブジェクト名.クラス名")で呼ぶのではだめでしょうか。
BASP21の解説 http://www.hi-ho.ne.jp/babaq/basp21.html がご参考になるのでは。

[2373] Re:dllのincludeについて
投稿者:リコさん 2002/07/29 14:08:44
ご解答ありがとうございます。
ちょっと以下の点がよく分からなかったので
教えていただきたいのですが・・・・。

> ASPはバイナリコードを解釈しません。
> ASPで使うincudeファイルは、ASPファイルと同じテキストファイルです。
> ref: [1103] 【解答例その4】インクルード・ファイル

↑上記の過去ログを参照しましたが、
これはdllファイルの拡張子を.aspもしくは.incにしなければ
ならないということでしょうか?(確かにテキストにも拡張子を
.incにしましょう。っとあったのですが。)でも、拡張子を変えたら
↓のように呼び出すのに判別されるのでしょうか?

> c:\winnt\system32\regsvr32 なんとか.dll
> でレジストリ登録して、ASPからServer.CreateObject("オブジェクト名.クラス名")で呼ぶのではだめでしょうか。
> BASP21の解説 http://www.hi-ho.ne.jp/babaq/basp21.html がご参考になるのでは。

また、すでにdllはレジストリ登録されていてsystem32に
存在していました。basp21のように、
Set TCommon = Server.CreateObject("TestCommon")
Set clsTCom = Servre.CreateObject(TCommon.clsTest1)
・・・というようにも試したのですがやはりエラーがでて
しまいました・・・・・。(「無効な ProgID」というエラーMsgでした)

まだまだ初心者なもので、よく分かっていない点が
多々あるかと思いますが、ご解答よろしくお願いします。

[2375] Re:dllのincludeについて
投稿者:北岳さん 2002/07/29 15:29:19
dllをASPのincludeファイルとして呼び出す?
ユニークな発想とは思いますが、できません。
 
>これはdllファイルの拡張子を.aspもしくは.incにしなければ
>ならないということでしょうか?(確かにテキストにも拡張子を
>.incにしましょう。っとあったのですが。)でも、拡張子を変えたら
>↓のように呼び出すのに判別されるのでしょうか?
>> c:\winnt\system32\regsvr32 なんとか.dll ■
 
拡張子dllを aspもしくは incに変えたら、使用不能になります。
■はinclude構文とは無関係の構文です。
 
【1】NT4または2000の場合、c:\winnt\system32にそのdllを置いて、■構文でレジルトリに登録するのが先決。
(system32にdllを置いただけでは手続き不足。)
 
【2】ASPからは、
Set clsTCom = Servre.CreateObject(TCommon.clsTest1)
VB5の場合、プロジェクトエクスプローラで見て、
Project名に書かれているの(デフォルトのオブジェクト名はProject1)がTCommon、
Class名に書かれているの(デフォルトのオブジェクト名はClass1)がclsTest1
の部分です。
それをピリオドで接続し、( )内は引用符で囲み、ついでにServreのスペルを直します。

[2384] Re:dllのincludeについて
投稿者:リコさん 2002/07/31 11:27:42
いろいろ、詳しくありがとうございました。m(__)m

あれからいろいろと試してみたのですが、
なかなか上手くいかずに苦労してました。(^_^;)

結局、http://support.microsoft.com/default.aspx?scid=kb;ja;jp299635
に載っていたように、一度dllを作り直して
サーバー側の設定をちょっと変えて
(サーバー管理者に変えてもらったので詳しくはわからないのですが・・・)、
Set clsTCom = Servre.CreateObject(TCommon.clsTest1)
・・・と記述したら使えるようになりました。

ちょっと時間がかかってレスが遅れましたが、
詳しく&分かりやすく教えてくださってありがとうございました。
またなにかあったらよろしくお願いします。m(__)m




TreeBBS For ASP V.0.1.3
Program By YasNet