VBで作成したプログラムについて質問があります。

Windows95上で起動するプログラムをVB6.0で作成したのですが、
インストール対象のパソコンにはVB2.0で作成されたプログラムが
既にインストールされています。
この場合、VB6.0で作成したプログラムをインストールしても
問題はないのでしょうか?
以前DLLの上書きとかで問題が生じるととか聞いたことがあるので不安になっています。

ちなみにインストールするのはプログラムとランタイムのみで、
開発ツールはインストールするつもりはありません。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

動く場合もあるし、動かない場合もあります。


実際にやってみないとわかりません。。。

特にVB6で追加コンポーネントを組み込んでいるならば、VB2製品が動かない確立が非常に大きいです。

他のメーリングリストですが・・・
VB4とVB6のコンポーネントの共存についての履歴があります。
http://www.users.gr.jp/ml/archive/vb/44.asp
http://www.users.gr.jp/ml/archive/vb/45.asp
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVB6.0をインストールしている環境でVB.NetをインストールしてもVB6.0は動かせるでしょうか?

初心者的な質問ですみません。
VB6.0をインストールしている環境でVB.NetをインストールしてもVB6.0は動かせるでしょうか?
それともVB6.0をアンインストールしなければVB.Netはインストールできないのでしょうか。

Aベストアンサー

.NETとVB6は同一のパソコン内で分割(お互い干渉せずに)して使うことができます。.NETの説明書にも記載がありますよ。

私としてはVB6を使っていて.NETに変更するとだいぶ違った操作性になるためHDDに余裕があるのであればVB6は残しておいた方がいいと思いますよ。

QVB6.0で作成したプロジェクトのVB.NETへのアップグレードでエラー発生

卒業研究でVBを使う予定です。
先輩の研究を引き継ぐことになっているのですが、VB.NETでプロジェクトを開くことができなくて困っています。

先輩が開発したのはVB6.0で、今研究室のパソコンに入っているのはVB.NETです。
VB.NETのアップグレードウィザードを使えばVB6.0のプロジェクトをVB.NETで編集できることまで調べたのですが、いざアップグレードしようとしたときに以下のようなエラーが出てしまいます。
・エラー文---------------------------------------
アップグレードに失敗しました:例外が発生しました:参照されたコンポーネント
Slider
Slider
Slider
Slider
Slider
Slider
に、デザイン時のライセンスがありません。
--------------------------------------------------
アップグレードできるようにするにはどうすればいいでしょうか?
よろしくおねがいします。

Aベストアンサー

Sliderコントロールが認識されていないようなので
VB.NET で新規プロジェクトを作成し、コンポーネント参照で
Sliderコントロールを参照可能に設定する。
その後、VB6.0の既存フォームモジュールをプロジェクトへ追加する。
以上

QVB(6.0)で作成したActiveX(ocx)をVBで呼び出す方法

普通OCXを使用する時は、
デザイン時にフォームにOCXを貼り付け
実行するとそのOCXが表示されると思うのですが
今回の質問はそうではなく
デザイン時には何も貼り付けず
VC++で言うCreateObjectの様に
実行時にOCXのオブジェクトを生成する事が
出来るのでしょうか?

Aベストアンサー

レジストリに登録してあれば、VBでもCreateObjectでできます。

QVB6.0で、DLLを動的に参照したい

VB6.0では、DLLを利用する際の宣言部分で、パスを""で括った静的な記載でなく、動的な記載にできるのでしょうか。
色々と調べてみたのですが、イマイチピンとくるものがなかったので質問させていただきました。

例:Public Declare Function Ztest Lib "C:\Test1\Test2" Alias "Test3" (ByVal data1 As Long) As Long
                          ↓動的に変更したい
  Public Declare Function Ztest Lib "○○:\Test1\Test2" Alias "Test3" (ByVal data1 As Long) As Long

Aベストアンサー

できません。
Declareの場所は大域変数の宣言、つまり定数などを定義する
領域です。これをプログラム実行中に変更しようという行為
ですから、ダメな理由は分かると思います。
Basicではポインタを使用してメソッドを呼び出す手段が
ありません。よって、動的なDLLのロードを行い、関数の
アドレスを得ることはできますが、そこへ制御を移す手段が
無いのです。

但し、同じファイル名のDLL(中身は異なる)を別フォルダに
保存しておき、動的にどちらのフォルダからロードさせるかを
決めることはできます。方法はクラスオブジェクトを使います。
例えば、Class1に以下のような定義をします。
Private Declare Function Ztest Lib "Test1\Test2" _
Alias "Test3" (ByVal data1 As Long) As Long
Public Function ZCall(ByVal data1 As Long) As Long
ZCall = Ztest(data1)
End Function

呼び出し側は次のようにします。
Dim C As Class1
Dim A1 As Long, A2 As Long
SetCurrentDirectory "C:\AAA" 'カレント切り替え
Set C = New Class1 'インスタンス生成
A1 = C.ZCall(0) 'メソッド実行
Set C = Nothing 'インスタンス消滅
SetCurrentDirectory "C:\BBB" 'カレント切り替え
Set C = New Class1 'インスタンス生成
A2 = C.ZCall(0) 'メソッド実行
Set C = Nothing 'インスタンス消滅

DLLがシステムディレクトリになければカレントを探します。
クラスオブジェクトはインスタンス生成の度にDLLをロード
しますので、その時にカレントを切り替えておくと似たような
処理にすることができます。標準モジュールは静的な空間なので、
ここでDLLを定義すると、ロードされたDLLを解放できません。

できません。
Declareの場所は大域変数の宣言、つまり定数などを定義する
領域です。これをプログラム実行中に変更しようという行為
ですから、ダメな理由は分かると思います。
Basicではポインタを使用してメソッドを呼び出す手段が
ありません。よって、動的なDLLのロードを行い、関数の
アドレスを得ることはできますが、そこへ制御を移す手段が
無いのです。

但し、同じファイル名のDLL(中身は異なる)を別フォルダに
保存しておき、動的にどちらのフォルダからロードさせるかを
決めることはできます。方法...続きを読む

QVB6.0 ExeとDllの違い

いつもお世話になっております。

今更ながらなのですがVB6.0について質問させて下さい。

新規でVB6.0を起動すると、「標準Exe」・「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」等がでてきますよね?

普段アプリを開発する時は「標準Exe」しか使用しないのですが、「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」の違いは何なのでしょうか?(どういうときに使い分けるのでしょうか?)

ActiveXDll・・・ソースコードのみ?参照設定する?(クラスやモジュールと何が違うのでしょうか?)
ActiveXコントロール・・・独自のコンポーネント(部品)を作る?(OCXのようなものでしょうか?)
ActiveXExe・・・(一番分かりません)

どなたかご教示お願いします。

Aベストアンサー

ActiveXDll・・・Cのライブラリのようなもの。ADOのDLL(DLLを参照してテーブルやレコードセットが使えるようになる)が近いイメージ。
ActiveXコントロール・・・OCXそのもの。オリジナルのコントロールの作成。
ActiveXExe・・・別アプリから操作するインターフェースを持ったアプリが作れる。ExcelやWordが近いイメージ。


このカテゴリの人気Q&Aランキング

おすすめ情報