• 締切済み

VB6で作成したDLLのコンポーネント登録について

VB6(SP6)+ActiveReports2.0jでSQLserver2005からデータを読み込んで印刷するDLLを作成しました。 このDLLをASP(VBS)を使ってWeb画面から呼び出しています。 その際、DLLはコンポーネントサービスに登録して使用しているのですが、一度コンポーネントサービスから削除して、VBのセットアップ(ディストリビューションウィザード)でセットアップしてもDLLは正常に呼び出されます。 最初のコンポーネントサービスへの登録は必要なのでしょうか? ※あまり深く理解せずシステムを引き継いだものですから、別の環境にインストールする際、上司からの問合せで返答に困っています。 Web上でいろいろ検索はしてみたのですが、仕組みが古い?せいか見つけることができませんでした。 よろしくお願いいたします。 こういう場での質問はあまり経験がありませんので、質問内容で不備等ありましたらご指摘ください。

みんなの回答

noname#158371
noname#158371
回答No.1

ディストリビューションウィザードで配布した状態というのは、 「作成したDLLをマシンに登録する」という意味合いだとお考え下さい。(確か、regsvr32が実行していたかと思いました。もう10年前のテクノロジーなので、いろいろと忘れてしまいました・・・orz) 一方、「コンポーネントサービス」に登録するのは、登録したDLLがなんらかのトランザクション処理(データベースにあるデータの更新・削除)を含んでいて、細かなトランザクションの管理を行う必要があるのであれば、コンポーネントサービスにもDLLを登録する必要があります。 今回の話だと、作成したCOMは、「SQLserver2005からデータを読み込んで印刷する」というものなので、どこまでデータ読み込み中のトランザクションを管理したいのか?にもよりますが、印刷データの抽出ぐらいしかやっていない上に扱うデータ量や印刷頻度が低いのであれば、コンポーネントサービスに登録しなくても良いのかなと個人的には思います。 後はそのシステムやアプリケーションで「どこまで何を管理する」のかを決めた上で、コンポーネントサービスへの登録を検討すれば良いんじゃないかと思います。

関連するQ&A

  • VB6からVB.NET作成DLL呼び出し時のエラー

    よろしくお願いします! http://www.sev.or.jp/ijupiter/world/dc_interrop/dotnet_com_interrop.html#d2 サイトを見てDLLを登録し、VB6でEXEを作成して動かした所成功しました。しかし、他端末で動かした所「ActiveXコンポーネントはオブジェクトを作成できません。」というエラーが出てしまい動作しません。 1.vb6のEXEはディストリビューションウィザードで作成したものを動かしました。 2.エラー端末には.NetFrameworkは入っています。 3.VisualStudioが入っている他端末では動きました。 VisualStudioが入っていないと動かないのでしょうか?何か解決法があれば教えていただきたいと思います。よろしくお願いします。

  • [VB5] RDO:エラー'429' ActiveX コンポーネントはオブジェクトを作成できません

    Excel97のVBAを使って、RDOでSQLserverに接続しようとすると 「ActiveX コンポーネントはオブジェクトを作成できません」 というエラーがでます。 VB5.0を再セットアップするとよいと以下のURLにはのっていますが http://www.microsoft.com/japan/support/kb/articles/J043/1/96.asp VBがインストールされていないマシンでは、どうしたらよいのでしょうか? RDOのバージョンは2.0です。

  • VB6で作成したOCXをASPから呼び出すときのセキュリティについて

    VB6(SP6)でOCXを作成しました。VBのディストリビューションウィザードでは「配置」を選択して作成しました。 このOCXをASP(VBS)を使ってWeb画面から呼び出しています。 このOCXを参照した時、ブラウザがOCXをダウンロードしようとしますが、PCによってはダウンロードされないことがあります。ブラウザのセキュリティ設定を確認していますが、他に影響のある設定はあるのでしょうか? WebサーバーはWindowsXP(SP3)でIIS6を使用しています。 クライアントはWindowsXP(SP3)でIE7で参照しています。 ダウンロードされたかどうかはブラウザのインターネットオプションから、インターネット一時ファイルの「オブジェクトの表示」で確認しています。 よろしくお願いいたします。 質問内容に不備などありましたらご指摘いただけると助かります。

  • VB2008にてWEBのDLL作成

    下記のような流れの処理を作成したいと思っています。 Webページ、()の部分は別言語で作成されています。 ・HPから入力された内容を取得(登録ボタン押下) ・DBへ登録 ・成功/失敗などの結果を返す(結果内容により画面遷移) VB2008にてプロジェクトを新規作成する際はどれを選べばよいかもわからず・・・ 見本などありましたら、ご教授お願いします。 環境 Windows2003 server IIS6.0 開発 VB2008 SQLServer2005

  • VBにてEXE作成

    VBにてとあるシステムを開発しました。 SETUP.EXEを作成して遠隔地に配布したいのです。が SETUP.EXEを起動してインストールはできるのですが 印刷実行時にエラーが出てしまいます。 VBから実行は出力できます。 ディストリビューション ウィザードの使用方法が 悪いのでしょうか。 OS :Windows2000 TOOL:VB6.0 SP5,Spread3.0,ImputMan6.5J DB :ORACLE8.05

  • VBでSCRRUN.dllエラー

    お世話になります。 VBでEXEファイルを作成後、ディストリビューションウィザードでパッケージを作ろうとすると、「SCRRUN.dllの依存情報が古い」と出てしまいます。 そこで、Microsoftのページをみたところ、ファイルシステムオブジェクトを利用している為、Scrrun.depのバージョン情報を書き換える必要があることがわかったので、やってみたのですが、再起動しても同じエラーが出てしまいます。 どうしたらいいでしょうか?

  • コンポーネントについて

    VBでコンポーネントを使用する際、使用者がそのdllやocxファイル等を持っていない時のために、実行ファイルと同じディレクトリに必要なdllやocxを置いて、それを利用してコンポーネントを使用したいと思うのですが、どうすればよいのでしょうか?わざわざsystem32にコピーするのは面倒ですので。。

  • webでのコンポーネントの配布

    はじめまして、田中と申します。 VB6.0で作成したコンポーネントをcabにアーカイブし、webで配布できるようにしたいのですが、 クライアント側でインストールが行われない状態です。 いろいろと調査をしてみましたが、ML、BBS等同じような問題についての質問は見かけたのですが、 回答がないものが多く、ここで皆様のお力をお貸しいただければと思っております。 VBでの開発自体経験が少なく、cabファイルを作るのも今回が初めてで、説明が不十分な点もあるかと思いますが、併せてご指摘いただければ幸いです。 <障害状況> (1)VB6.0にて作成したコンポーネント(*.dll,*.ocx)をディストリビューションウィザードを使用してcabに圧縮し、IISディレクトリに配置 (2)テスト用クライアントから、(1)のディレクトリに接続 (3)セキュリティ警告のダイアログが表示され、「はい」を押下(インストールして実行する) (4)表示されている画面上のAPLを実行するとエラーとなる <インストールの状態> ・「Temporary Internet Files」には、cabファイルがダウンロードされている ・「Downloaded Program Files」には、該当のプログラムが登録されていない 不足している情報がありましたらご指摘ください。 よろしくお願いいたします。

  • VB2005 から DLL を呼び出す

    VB 初心者です。 今、VB の練習ということで VB 2005 Express Edition を使って、個人用ブラウザをつくっています。Web ページの表示は Webbrowser コンポーネントを使っています。 その仕様で、閲覧先によって HTTP Proxy を変更するようになっています。(自分で決めたんですが) いろいろ調べてみると、urlmon.dll の UrlMkSetSessionOption() を呼べば自分のアプリケーション限定で Proxy を変更できるようだ、ということがわかりました。 古い VB など(VB 6 とか?)では、 Private Declare Sub UrlMkSetSessionOption Lib "urlmon.dll" _ (ByVal dwOption As Long, ByVal pBuffer As Any, _ ByVal dwBufferLength As Long, _ ByVal dwReserved As Long) このような感じで宣言するとかあったんですが、VB2005 では Any がダメだとか、 Type INTERNET_PROXY_INFO Dim dwAccessType As Long Dim lpszProxy As String Dim lpszProxyBypass As String End Type で Type はダメだとか、呼び出し側で、LenB を使おうとしたら使えないだとか、INTERNET_OPTION_PROXY の値がわからないなど、問題が山積みです。 上記 DLL を VB 2005 で使ったことがある人がいたら(またはわかる人)、使い方を教えてもらえないでしょうか?

  • WindowsVistaでのVB5.0のアプリケーションについて

    現状、VB5.0で、DAO350.dllと、CFX4032.DLLを使用して開発した アプリケーションがあるのですが、WindowsVista上で動作しません。 VB5.0のディストリビューションウィザードで作成したインストーラ を使用して、インストールした際に、上記の2つのDLLが登録できない といったエラーが発生します。ただ、インストール自体は中断せずに そのままインストールが終了するのですが、アプリケーションを起動 した際に、どうもCFX4032.DLLを使用しているCharFxが正常に動作して いないようなのです。 どなたか同様の経験された方、または、この現象の対応策をご存知の 方がいましたら、ご教授をお願いします。 ものすごくこまっています。 ひょっとしたら、作り変えないといけないのでしょうか。 設計書もあまりなくて、かなり昔に作成したアプリケーションなので 作り変えになると、かなり大変なので、なんとか、DLLの入れ替えとか で対応できないかと悩んでいます。 よろしくお願いします。