VB2005の標準モジュールについて


VBぶいび  2006-08-01 01:33:11  No: 132512

VB2005、新米プログラマーです。
VB6.0で標準モジュールの追加をするとダイアログが開いて.BASのファイルを
追加できますよね?。VB2005ではモジュールの追加(標準がついていない)
をクリックするとコードが表示されて、VB6.0と違うのですが、.BASファイル
を追加したい時、どうすれば良いのでしょうか?


大吉末吉  2006-08-01 03:46:44  No: 132513

VBぶいびさん  こんにちは

> BASファイルを追加したい時

VB6までと異なり、VB2005には「BASファイル」はありません。

代わりに用意されてるのが、
> モジュールの追加(標準がついていない)をクリックするとコードが表示され
ですので、これを使ってください。

実際、VB6製のプロジェクトをアップグレードウィザードで、VB2005にアップグレードすると、
「BASファイル」は、「モジュール」に変換されます。


特攻隊長まるるう  2006-08-01 03:51:29  No: 132514

参考リンク追加。

[Module ステートメント]
http://msdn2.microsoft.com/ja-jp/library/aaxss7da.aspx

VB.NETの言語仕様では、『標準モジュール』と呼ばれています。
…が、使われなくなってきています。
[@IT 第7回 VBのモジュールはオブジェクト指向に不要?]
http://www.atmarkit.co.jp/fdotnet/vbcheer/vbchher07/vbcheer07.html


VBぶいび  2006-08-01 03:52:02  No: 132515

大吉末吉さん  こんにちは  
ありがとうございます。

モジュールの追加(標準がついていない)で.BASのソースをコピペしたのですが
コンパイルエラーになってしまったのですが、基本的にはこの使い方で良いのでしょうか?(この方法しか思いつきませんでした。)


魔界の仮面弁士  2006-08-01 03:57:36  No: 132516

> .BASファイルを追加したい時、どうすれば良いのでしょうか?

VB2005 ではファイルの管理方法が変更されています。
ソースは通常、.bas ではなく .vb というファイルで管理されます。

VB6 は、標準モジュール/フォーム/クラス等が、それぞれ異なるファイルとして
管理されていましたが、VB.NET はそうではありません。

ひとつの .vb ファイルに、複数のクラスとモジュールを含める事もできますし、
ひとつのクラスを、複数の .vb ファイルで分割管理する事もできます。(Partial)

たとえば、 Foo.vb というファイルがあって、その中身を以下のようにすれば、
ひとつの Foo.vb 内に、モジュール定義とクラス定義とフォーム定義を
一度に書くことができます。

'===========
Module Module1
  '
  'この部分が、標準モジュール[Module1]の定義部
  '
End Sameple

Class Class1
  '
  'この部分が、クラスモジュール[Class1]の定義部
  '
End Class
'===========

# 実際には、異なる定義を一つのファイルに詰め込むような書き方は、
# 避けておいた方が無難です。


魔界の仮面弁士  2006-08-01 04:28:17  No: 132517

> ソースをコピペしたのですが

文法は似ていますが、細部は同一ではありませんので、単にそのまま
コピーするのではなく、元のコードの意味と VB2005 の機能を
理解した上で、適切なコードに書き直す必要があるかと思います。

その変換の手助けとして、アップグレード ウィザードなどを
補助的に利用する事ができるかと思います。
http://www.atmarkit.co.jp/fdotnet/special/vb6tovb2005mig03/vb6tovb2005mig03_02.html


VBぶいび  2006-08-01 19:23:14  No: 132518

アップグレード ウィザードを使ってみました。
Public Declare Function ImgGetNumOfDevice Lib "SDK.dll" (ByRef pNumOfDevice As Integer, ByRef pErrCode As Integer) As Integer
        'UPGRADE_WARNING: 構造体 SERCH_INFO に、この Declare ステートメントの引数としてマーシャリング属性を渡す必要があります。 詳細については、'ms-help://MS.VSExpressCC.v80/dv_commoner/local/redirect.htm?keyword="C429C3A5-5D47-4CD9-8F51-74A1616405DC"' をクリックしてください。
このようなメッセージが大量に出ました。
ネットやヘルプを読んだのですが今ひとつわかりません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加