□技術メモ - VB6による開発 ※管理人の個人的な技術メモです。このページの内容を実行した結果について 管理人はいかなる責任も負いかねますのでご自身の責任でお試しください。 ----------------------------------------------------------- ・VB6による開発に関する事柄や対策を記載して行きます。 ○関数名の先頭1文字が勝手に小文字になってしまう ・VB6での開発時にたまに発生しますが、VB6は大文字と小文字を区別していないので、 気にしていない人もいるかも知れませんが、他の人のコードに影響を与える可能性もあるので やはり起こらない方がよいです。この現象が発生する原因としては、 自前の関数を作成する場合に先頭1文字を小文字で作成してしまった場合に発生します。 (例) 自前のクラスを作成するとします。その時に、addItemなどと、先頭1文字を小文字にしてしまうと、 combo1.AddItem や、list1.AddItem が、 combo1.addItem や、list1.addItem に変換されてしまいます。 (対策) 本来、モジュール内の関数名が他のモジュールの関数名に影響を与えるのはおかしいはずですが、 VB6のエディタでは変換が起こってしまいます。 ちなみにVB.net では名前空間が定義されていれば意図しない変換はおこらない様です。 関数名の変換が起こるのは新たに関数を追加する時なので、意図しない変換を戻すには、 自前の関数を一度削除して保存する→同じ名前で先頭が大文字の関数を追加する これで戻るはずです。 (注意) ・VB6で関数を定義する場合は、必ず半角英字大文字で始まる名前にするようにしましょう。 -------- ○ActiveX DLL による開発(開発時に標準EXEに追加する方法) ・標準EXEでプロジェクトを新規作成する。 ・ここで新規作成-ActiveX DLLを選択すると、.vbgという拡張子のプロジェクトファイルが作成されて、 1つのプロジェクト内に、標準のアプリケーションとDLLが同居した状態になる。 ActiveX DLL側にはオブジェクト名の設定をすること。 ・ActiveX DLL側でメソッドを作成すると、標準EXE側でこれを参照できるようになる。 ・呼び方は、オブジェクト名.メソッド名。 ・以下は参照のサンプル。 Dim objDLL As Object Set objDLL = CreateObject("ファイル名.オブジェクト名") objDLL.メソッド(引数) Set objDLL = Nothing ''メモリの解放 ・ActiveX DLLのソース更新時はエディタが異常終了することがあります。注意すること。 -------- ○ActiveX DLL による開発(既存プロジェクトにDLLのみ追加する方法) ・標準EXEでプロジェクトを新規作成する。 ・レジストリにDLLを追加する。以下を実行すること。 regsvr32 パス名\ファイル名.dll ・アンレジストする場合は以下の通り。 regsvr32 /u パス名\ファイル名.dll --------