[kansaipm] Re:セミナーで発表した資料
Kawai,Takanori
kawai at nippon-rad.co.jp
Tue May 30 19:44:02 CDT 2000
川合孝典です。
----- Original Message -----
From: <mishima at momo.so-net.ne.jp>
To: <kansai-pm-list at pm.org>; <kroonyao at mail.goo.ne.jp>
Sent: Wednesday, May 31, 2000 10:29 AM
Subject: [kansaipm] Re:セミナーで発表した資料
まずは
> > あ,ActiveState のPerl でexe ファイルを書き出すコマンドが
> > あるんですね.そういえば,ActiveState のWeb ページで見たような‥
>
> を。確かにドキュメントに pl2exe のことが載ってる。
> でも、現物がないのはなぜだ?
pl2exeについては別だったように思います。
http://www.activestate.com/pdk/
に以前情報があったようです。
#止まっているのか、ActiveStateにアクセスできません。
#なんでや(?_?)
なおPerl2exeというものもあります。
http://www.dynamicstate.com/
どちらも以前Perl-Win32-Jで話題になったのを覚えていただけという
レベルですけども。
> > Perl の話題から逸れますが,VB を使ってコマンドライン上で
> > 動くexe ファイルって書けるんでしょうか?
>
> 書けますよ。でも、標準入出力を扱う関数が無いんです。
> そんなバカなと思って、ヘルプやらWebやらを探し回ったことがあるの
> ですが、結局見つかりませんでした。
> #もし、知っている人がいたら教えてください。
ということでしたので、Perlの話ではありませんが...
VBから標準入力から読み込んだり、標準出力、エラー出力に書き込むことは
VBの関数では用意されていません。
そのため、以下のようなWin32APIを使用します。
VBではUnicode、入出力はSJISで行われるので、コード変換をしなければいけないことに注意が
必要です。
#改行がはいってしまったら適当なところでつなげてください。(^^;;;
=入出力の例=
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function ReadFile Lib "kernel32" _
(ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Private Declare Function WriteFile Lib "kernel32" _
(ByVal hFile As Long, ByVal lpBuffer As String, _
ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Private Const STD_INPUT_HANDLE = -10&
Private Const STD_OUTPUT_HANDLE = -11&
標準出力への出力例
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)
sData = "Hello World" & vbCrLf
sOut = StrConv(sData, vbFromUnicode)
lOff = 0
PrnOut = WriteFile(hStdOut, sData, LenB(sOut), lOff, ByVal 0&)
標準入力からの読み込み
hStdIn = GetStdHandle(STD_INPUT_HANDLE)
lContLen = Val(Environ("CONTENT_LENGTH"))
sBuff = String(lContLen, Chr$(0))
lRead = lContLen
lRet = ReadFile(hStdIn, ByVal sBuff, lContLen, lRead, ByVal 0&)
sCgi = StrConv(LeftB(StrConv(sBuff, vbFromUnicode), lRead), vbUnicode)
==============================================
川合 孝典(Hippo2000)
Mail: kawai at nippon-rad.co.jp GCD00051 at nifty.ne.jp
http://member.nifty.ne.jp/hippo2000
==============================================
More information about the Kansai-pm
mailing list