WinXP+VB6SP6で作成していたプログラムを、Win2K+VB6SP6の環境で実行しようとしたら、
TreeViewコントロールのlvwAscending値が「プロジェクトまたはライブラリが見つからない」と言われました。
参照設定や使用コンポーネントは見たところ変わっていません。
ちなみにコンパイルしたexeは動作しました。
どうしてでしょうか。教えてください。
こちらの環境は Win2K+VB6SP5 ですが、
Const lvwAscending = 0
として定義されています。一度オブジェクトブラウザで
検索してみて下さい。無ければVBは認識できていません。
こちらでは MSComctlLib に定義されています。名前空間
を省略せずにフルで指定してみて下さい。
特攻隊長まるるうさんありがとうございます。
Constで定義してやってみたところ、
今度はRight関数が同様のエラーになりました。
これって何なのでしょう?
オブジェクトブラウザでもちゃんと見えているのですが・・。
設定かなにかでしょうか。同様のソースが以前Win2000で動いたんですけどね。
わかりません。。。
>Constで定義してやってみたところ、
いや、それ根本的な原因追求して無いけど(^^;)
前回のレスは『ローカルで定義すれば解決する』
と言ったつもりは無いです。
Library ファイル MSComctlLib の中で既に
Const lvwAscending = 0
と定義されているのがオブジェクトブラウザで
確認できるか?という話をしただけです。
原因は全く分かっていませんので解決法をレス
しているわけではありません。誤解の無いよう
お願いします。
色々と確認していきます。違ってたら指摘して下さい。
>WinXP+VB6SP6で作成していたプログラムを、Win2K+VB6SP6の環境で実行しようとしたら
WinXP+VB6SP6 の端末で作成したプロジェクトを
フォルダごと Win2K+VB6SP6 の端末にコピーして
プロジェクトから実行を試みた。
その際、両端末にインストールされている[VB6.0]
は同じCDからインストールしたものである。
プロジェクトの種類は[標準EXE]である。
WinXP+VB6SP6 の環境で[完全コンパイル後に開始]を
選択してエラー無く実行できる。
WinXP+VB6SP6 の環境のコード上で lvwAscending を
右クリックして右クリックメニューから[定義]を選ぶ
とオブジェクトブラウザに飛び、適切なライブラリの
下の定数を表示できる。
そのライブラリ名は MSComctlLib である。
そのライブラリのファイルパスはシステムフォルダの下の
MSCOMCTL.OCX である。
Win2K+VB6SP6 の環境のコード上で lvwAscending を
右クリックして右クリックメニューから[定義]を選ぶ
とオブジェクトブラウザに飛ばない。
オブジェクトブラウザで lvwAscending を検索すると
適切なライブラリの下の定数を表示できる。
検索にヒットする項目は1つのみである。
そのライブラリ名は MSComctlLib である。
そのライブラリのファイルパスはシステムフォルダの下の
MSCOMCTL.OCX である。
以上、間違いないか確認して下さい。