Jeans & Development:
Deprecated: Function strftime() is deprecated in /home/u109394186/domains/rad51.net/public_html/jeans/jeans/libs/blog.php on line 333
2005年 12月の記事
C++で作るCOMサーバ [プログラミング]
2005年12月20日
.NET を用いればregasm.exeでCOMサーバを簡単に登録することが出来るのだが、やはり.NETは重い。加えて、.NET Framework がインストールされていないコンピュータの割合はそれほど低くないと思われる。
他方で、簡単な構造のCOMサーバなら、C++を用いてWin32プログラムとして製作すればよい。この場合、動作は軽いし汎用性もある。ただし、複雑なプログラムを組むのはやはり骨が折れるのだが…。
今回C++を用いたCOMサーバを製作することになったので、その方法をここにまとめておくことにした。
他方で、簡単な構造のCOMサーバなら、C++を用いてWin32プログラムとして製作すればよい。この場合、動作は軽いし汎用性もある。ただし、複雑なプログラムを組むのはやはり骨が折れるのだが…。
今回C++を用いたCOMサーバを製作することになったので、その方法をここにまとめておくことにした。
VS 2005 Express Edition [プログラミング]
2005年12月18日
『ついにVisual Studio(VS)の一部無償提供が始まった』との情報に従って(知らなかった!)、Microsoft のページからダウンロードしてインストールしてみた。ダウンロードは1年間限定(2006年11月まで)であるが、この期間中にダウンロードをすませれば、期間が過ぎても使えるようである。
Microsoftのプログラミングツールの入手は、1998年頃のVB5以来であるが、やはり使いやすい。ついでに.NET Framework ver2.0も入っているみたいなので、新しい機能も試せるかも知れない。
Microsoftのプログラミングツールの入手は、1998年頃のVB5以来であるが、やはり使いやすい。ついでに.NET Framework ver2.0も入っているみたいなので、新しい機能も試せるかも知れない。
vbscriptでマシン語を使う [プログラミング]
2005年12月18日
前の記事『VB.NETでマシン語を使う3』を書いていて思ったのだが、これは要するにvbscriptからマシン語を呼び出していることだということに気が付いた。ならばいっそのこと、vbscriptからマシン語を呼び出すためのCOMオブジェクトを用意しておけば、将来的にもしかしたら有用になるかも(?)しれない。で、作ってみた。
VB.NETでマシン語を使う3 [プログラミング]
2005年12月16日
VB.NET版DynaCallが完成した。次のようなvbscriptのコードで、MessageBoxAが呼び出せる。
実行結果は、前の記事と同じで以下の通り。
set dc=CreateObject("dwtools.NET.dynacall") dc.Push 1 dc.Push dc.AnsiString("テスト") dc.Push dc.AnsiString("DynaCall.NET") dc.Push 0 call dc.CallAPI("user32","MessageBoxA")
実行結果は、前の記事と同じで以下の通り。
VB.NETでマシン語を使う2 [プログラミング]
2005年12月14日
VB.NETによるDynaCallの原型になるテストプログラムが完成した。テストでは、MessageBoxAを呼び出すことに成功している。
VB.NETでマシン語を使う [プログラミング]
2005年12月14日
現在のSFCは、Win32APIの殆どをVB.NET内で宣言する形になっている。これは、DynaWrapから脱却するための一つの方法であったのだが、逆にWin32API以外の関数をDLLから呼び出して実行することは出来ない(DynaWrapなら可能)。
そこで、やはり最終的にはDynaCall様の物をVB.NET内に構築して実行する形にしたいと思っている。これには、DynaCallの様なインラインアセンブラが必要である。
前に一度述べたように、こちらのページではインラインマシン語の使い方を紹介している。ただし、ver 2.0の.NET frameworkが必要で、これはまだβバージョンである。正式なver 2.0の登場が待てないので、別の形でインラインマシン語を利用する方法を考えてみた。
そこで、やはり最終的にはDynaCall様の物をVB.NET内に構築して実行する形にしたいと思っている。これには、DynaCallの様なインラインアセンブラが必要である。
前に一度述べたように、こちらのページではインラインマシン語の使い方を紹介している。ただし、ver 2.0の.NET frameworkが必要で、これはまだβバージョンである。正式なver 2.0の登場が待てないので、別の形でインラインマシン語を利用する方法を考えてみた。
WSHでWin32APIを呼び出す-その16 [プログラミング]
2005年12月10日
(←戻る)
Windowsフォームを用いた次のようなHello WorldプログラムがSFCで作成できるようになった。
今回の目玉としては、"Command1_click"という文字列を与えるだけで簡単にボタンのクリックイベントを登録できるところ。
実行画面
(追記)
このシリーズは、この記事をもって終了します。ここまで述べた一連のこととほとんど同じことは、SFC mini を用いれば行うことが出来ます。
Windowsフォームを用いた次のようなHello WorldプログラムがSFCで作成できるようになった。
option explicit Dim SFC Set SFC = CreateObject("dwtools.NET.SFC") Execute SFC.Initialize Execute SFC.Include("<WinForm>") Dim Form1 Set Form1=new WinForm call Form1.AddControl(0,"STATIC","List1", _ WS_CHILD+WS_VISIBLE+SS_CENTER, _ 100,50,300,30, 0) call Form1.AddControl(0,"BUTTON","Command1", _ WS_CHILD+WS_VISIBLE+BS_PUSHBUTTON, _ 100,100,300,30, "Command1_click") Form1.Init Form1.Show wscript.quit(Form1.MsgLoop) Sub Command1_click(hwnd,message,wparam,lparam) msgbox "Hello World!" End Sub
今回の目玉としては、"Command1_click"という文字列を与えるだけで簡単にボタンのクリックイベントを登録できるところ。
実行画面
(追記)
このシリーズは、この記事をもって終了します。ここまで述べた一連のこととほとんど同じことは、SFC mini を用いれば行うことが出来ます。