■
ここで紹介するプログラムは無意味のきわみです。
どっちかというと、プログラム自体より、コマンドラインコンパイルの引数にご注目ください。
コマンドラインアプリケーションからファイルオープンダイアログボックスを呼び出すというものです。
本気で無意味だよなあ。
このソースコードを、そのまま、
Option Explicit
Option StrictImports System
Imports System.Windows.FormsPublic Module fuga
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialogSub Main(ByVal cmdArgs() As String)
OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
If OpenFileDialog1.ShowDialog() <> DialogResult.Cancel Then
Console.WriteLine(OpenFileDialog1.FileName)
End If
End Sub
End Module
なんてやってもコンパイルできません。
C:\usr\VBDialog>vbc /t:exe vbdialog.vb
ソースコード内で定義している「System.Windows.Forms」を拾ってくることができないからです。
そこで、どの名前空間を使うか、コンパイラに明示的に指示してあげます。
「/reference:」に続く*.dllは「,」で続けますが、見やすいように半角空白を入れると、コンパイルできません。コンパイラは半角空白後の*.dllを新しいスイッチとして認識するからです。
C;\usr\VBDialog>vbc /t:exe /debug+ /reference:System.dll,System.Windows.Forms.dll vbdialog.vb