|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
ActiveX-dllのレジストリ登録は省略可能?
北岳さん
[2001/12/25 11:22:21]
[1314]
|
Re:ActiveX-dllのレジストリ登録は省略可能?
Tomitomiさん
[2001/12/25 11:26:34]
[1315]
Re:ActiveX-dllのレジストリ登録は省略可能?
北岳さん
[2001/12/25 18:30:33]
[1317]
一応、省略可能でしたが・・・
北岳さん
[2001/12/26 9:53:25]
[1319]
Re:ActiveX-dllのレジストリ登録は省略可能?
喜平さん
[2001/12/27 12:49:07]
[1321]
Re:ActiveX-dllのレジストリ登録は省略可能?
北岳さん
[2001/12/27 13:48:41]
[1323]
|
| [1314] ActiveX-dllのレジストリ登録は省略可能? |
| 投稿者:北岳さん 2001/12/25 11:22:21 |
| 最初に雑談。別スレッドの 『特定ファイル一覧』 Sawaさん [2001/12/21 14:12:01] [1301] に触発され、この3連休のあいだに、 指定フォルダ内の指定拡張子を持つファイルを標準exeのリストボックスに表示するActiveX-DLLを、VB5で作ってみました。(VB6は不所持、未経験。) ところで私は ActiveXという用語は、インタネットでサーバ側アプリをクライアントが利用する際の技術、と理解しており、今回はスタンドアロンで使うつもりで作成。 (1) ActiveX dll: 自作関数内から FindFirstFileA/FindNextFileA/GetFileAttributesA 呼び出し。 (2) 標準exeのフォームモジュール: フォルダ名+拡張子名--- textbox ファイル名一覧--- listbox public とprivateの区別に悩まされつつも、クラスモジュールの自作関数(as variant)でファイル名一覧(配列)を作り、 ファイル名は配列ごと、ファイル数は同一関数内でpublic変数に納め、 結果を標準exe の listboxへ表示。 みごと完成して、出来上がったexeを動かしていたとき、にわかに既視感が・・・ あ、そうか、苦労して作った画面は、VBではお馴染みの FileListBox そのものじゃんか。 APIを使っても特に速い感じがしなかったのは、FileListBox と同程度の速さだったからなんだ・・・ FileListBoxだったら3分で作れるのに、3連休を潰して結局何やったんでしょうかねぇ。 ------------------ 【Q】 ところで dllへのフルパスを指定して、レジストリへの登録なしで使おうと試みましたが、どうにも成功しませんでした。 (dllコンパイルと同時に登録されるので、regsvr32.exe /u でいちいち削除して実験。) ActiveX DLL って、サーバでも、スタンドアロンでも、レジストリに登録しないと使えないのでしょうか。 |
| [1315] Re:ActiveX-dllのレジストリ登録は省略可能? |
| 投稿者:Tomitomiさん 2001/12/25 11:26:34 |
| こんにちは、Tomitomiです。 > 【Q】 > ところで dllへのフルパスを指定して、レジストリへの登録なしで使おうと試みましたが、どうにも成功しませんでした。 > (dllコンパイルと同時に登録されるので、regsvr32.exe /u でいちいち削除して実験。) > ActiveX DLL って、サーバでも、スタンドアロンでも、レジストリに登録しないと使えないのでしょうか。 実験してないのでわかりませんが憶測で書くと、 VBの参照設定に読み込ませればレジストリに登録なしで使えるかも? これもどっかで見た話ですが、 IISのトランザクションサーバ?に登録すると使えるらしい。。 僕はレジストリに登録して使ってますが。。w |
| [1317] Re:ActiveX-dllのレジストリ登録は省略可能? |
| 投稿者:北岳さん 2001/12/25 18:30:33 |
| tomitomiさん有難うございます。 当面は dllはレジストリに登録した形で使うことにしました。 ご提案内容は正月に確認したいと思います。 |
| [1319] 一応、省略可能でしたが・・・ |
| 投稿者:北岳さん 2001/12/26 9:53:25 |
| >> ActiveX DLL って、サーバでも、スタンドアロンでも、レジストリに登録しないと使えないのでしょうか。 > VBの参照設定に読み込ませればレジストリに登録なしで使えるかも? プログラムを作成しているフォルダ(d:\folder\vbsrc)に標準exeと自作dllを置き、 標準exe側の参照設定でこのdllを指定し(絶対パスでしか指定できない様子)、 dllコンパイル時に作られたレジストリキーをregsvr32.exe/uで削除し、 標準exeを動かしたら、 (おっしゃる通り)レジストリ登録なしでも使えました(1)。 <確認実験> 試しにこのフォルダのdll名を変えて実行したら、exeから「ActiveXコンポーネントはオブジェクトを作成できません」エラー、 dll名を元に戻したら再度 exeが正常実行されました。 レジストリに読みに行っていないことは確かです。 次にdll名は元のまま、フォルダをd:\folder\vbsrc2 に改名したら、再び「ActiveX・・・」エラー。(2) 確かに(1)参照設定すれば、レジストリに登録せず使えましたが、dllをフルの絶対パスで指定。 絶対パスが見つからないとき、(2)exeがあるフォルダ内でdllを探してはくれませんでした。 ---------------- で、当初の目的「dll付きexeをイントラで配る」のは、僅かとは言えユーザ側の設定が必要なので、やめにしました。 今までの方法: [1] VBのランタイムDLLのみ最初にユーザのシステムフォルダにコピーして貰う [2] APIも自作関数も標準モジュール内に書く [3] フォームモジュールと[2]の関数をコンパイルして1つのexeを作る [4] そのexeを<a href="〜">で配布する。 これで何も問題はなかったので、やはり dllは、サーバだけで使うことにします。 |
| [1321] Re:ActiveX-dllのレジストリ登録は省略可能? |
| 投稿者:喜平さん 2001/12/27 12:49:07 |
| > 【Q】 > ところで dllへのフルパスを指定して、レジストリへの登録なしで使おうと試みましたが、どうにも成功しませんでした。 これは、当然。。activex は、レジストリへの登録が必要な技術です。vb ide 側で参照設定すると、勝手にレジストリへの登録処理を やってくれるというだけのことです。コンパイルしたexe も、activex が見つかれば、登録してくれます。 > (dllコンパイルと同時に登録されるので、regsvr32.exe /u でいちいち削除して実験。) これは、activex をバイナリー互換として作成していれば、 大丈夫です。 |
| [1323] Re:ActiveX-dllのレジストリ登録は省略可能? |
| 投稿者:北岳さん 2001/12/27 13:48:41 |
| そうでしたか。クリアになりました。 有難うございます。 |
|
TreeBBS For ASP V.0.1.3 |