W-ZERO3[es]にプログラミング環境を(3)

前回(W-ZERO3[es]にプログラミング環境を(2) - ひらいて)に引き続きW-ZERO3[es]のプログラミング環境(.NetCF2.0)をタダで整えるべく苦労する日記。
.Net Framework 2.0 SDK&Compact Frameworkで、メッセージボックスをes上で表示させるプログラムは作れるようになったので、今度はWindows Formsアプリケーション。特に大きい障害も無く出来た。


プログラムは、ボタン2つがフォーム上に表示されているだけの簡単なもの。赤いボタンをクリックするとメッセージボックスが表示され、終了ボタンをクリックするとプログラムが終了する。


環境変数を設定するバッチ
System.Drawing.dll を追加した
[setncfenv.bat]


rem .Net (Normal) Framework 2.0 SDK のインストール先
rem (vbcとかのコンパイラが置いてあるディレクトリ)をパスに追加
set PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;%PATH%

rem .Net Compact Framework 2.0 のインストール先をセット
set CFLIB="C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE"

rem vbcに渡すコンパイルオプション。
rem /rでプログラムが利用するライブラリを列挙する
set CFOPS=/netcf /nostdlib /sdkpath:%CFLIB% ^
/r:%CFLIB%\System.dll /r:%CFLIB%\System.Windows.Forms.dll ^
/r:%CFLIB%\System.Drawing.dll


・プログラム
なぜかcf用にコンパイルするときだけ、TypeName使うのにMicrosoft.VisualBasicをインポートする必要がある。
[SampleForm.vb]


imports Microsoft.VisualBasic
imports System.Windows.Forms
imports System.Threading
imports System.Drawing

public class SampleForm
inherits Form

private withevents b1 as Button
private sub b1_Click(sender As Object, e As System.EventArgs) Handles b1.Click
close()
end sub

private withevents b2 as Button
private sub b2_Click(sender As Object, e As System.EventArgs) Handles b2.Click
MessageBox.show("Oops.")
end sub

public sub New()
controlBox = true
minimizeBox = true
text = TypeName(me)

b1 = new Button()
b1.height = 30
b1.width = 100
b1.text = "終了"
controls.Add(b1)

b2 = new Button()
b2.height = 200
b2.width = 200
b2.backcolor = Color.red
b2.text = "ホアタッ!"
controls.add(b2)
end sub

protected overrides sub OnResize(e As System.EventArgs)
b1.top = 10
b1.left = (me.width - b1.width)/2
b2.top = b1.top + b1.height + 10
b2.left = (me.width - b2.width)/2
end sub

shared sub Main()
dim f as new SampleForm
f.show()
Application.run(f)
end sub
end class


コンパイルしてコピーして実行
以下のコマンドを実行。環境変数をセットしてコンパイルしてesにコピーしてes上で実行。
cecopy, rapistartはPower Toys(参照)のもの。


>setncfenv
>vbc %CFOPS% SampleForm.vb /main:SampleForm
>cecopy SampleForm.exe "dev:\My Documents"
>rapistart "\My Documents\SampleForm"


・実行画面


起動直後


赤ボタンクリック後