PCだい「ちゅき」

気がつけば庶事手伝い

目次

Blog 利用状況

ニュース

・H24/01/02
 Microsoft MVPを受賞しました
・H23/11/18
 MCTの憂鬱さんと相互リンクを張っていただきました^^
・H23/09/10
 プログラミング生放送でスピーカーさせていただきました^^ ・H22/12/18
 わんくま同盟でスピーカしました^^
さて、来年はどんな年になるかな。予想が当たるといいなぁ。
・H22/07/17
 わんくま同盟でスピーカしました^^
技術系のセッションは久しぶり。VB! VB!
・H22/03/13
 Tech FieldersでLTのスピーカしました^^
・H21/12/12
 わんくま同盟でスピーカしました^^
最近はずっとLT担当だったので、ちょっと新鮮でした^^
・H20/11/18
 Tech Fielders セミナー 大阪の
 Lightning Talkで優勝しました^^
・H20/8/23
 わんくま同盟で2回目のスピーカしちゃいました
 WCFと戯れてみました^^
・H20/5/17
 わんくま同盟でスピーカしちゃいました^^
 ちゃんとスピーカー持参しましたよんw
・H20/2/22
 なめ猫の参加証もらいました^^
・H20/1/22
 テンプレートを変えてみました^^
・H19/7/23
 ACEプログラムで、ナップサックをもらった上、工具セットももらえることになりました^^
・H19/1/11
 1が並ぶ縁起の良い日に投稿開始!。今後ともお付き合いよろしくお願いします
・H18/10/29
 参加させていただきました^^
ド・初心者ですがどうぞよろしくお願いします。

↓うーん、仕事しろ^^;
Chukiの脳内メーター

Chukiの脳内メーター

書庫

日記カテゴリ

ギャラリ

コミュニティ

相互リンク

2008年4月13日

や、やられた。動きが違う...orz 【備忘録】 64bit版 Windows Server 2008 VBSの変数宣言の挙動が違う

手持ちで64bit版がWindows Server 2008しかないため、他のバージョンでは確認できませんが、VBSの挙動の違い。
#そういえば、Windows Server 2008 x86の環境もないので未確認^^;

Vista x86版向けに作って使用していたスクリプトが動かないと思ったら...
呼び出し先関数で利用するグローバルな配列は、関数呼び出し前に宣言しないと使えません^^;


【ダメな例】

bRet = hogehoge()'ここで関数を呼び出す

Dim g_arTest()'←呼び出しより後に配列の宣言をするとダメ
Function hogehoge()

Redim Preserve g_arTest(10)'←ここで「エラー: 型が一致しません。」が発生
hogehoge = true

End Function

【動く例】

Dim g_arTest()'←呼び出しより先に配列を宣言bRet = hogehoge()'ここで関数を呼び出すFONT face=Arial>Function hogehoge()

Redim Preserve g_arTest(10)
hogehoge = true

End Function


とってもこれがバグ仕様だと思う理由。以下のコードはWindows Server 2008 x64版で動くのですよねぇorz

【動く例】配列じゃない変数はどこで宣言しても良いっぽい(きもちわるいけれど^^;)
(実行結果は当然「-1:ちゅきは一般優良市民←ここが一番の要点!

Option Explicit

szTest = "*ちゅきはウソちゅき"'←宣言前に使うのはどうか? というはないしょ^^;
Wscript.Echo hogehoge() & ":" & szTest

Dim szTest

Function hogehoge()
szTest="ちゅきは一般優良市民"
hogehoge = true
End Function


さて、改修どうしようかなぁ...(Let's say あんさっとぉ o...rz)

posted @ 2:44 | Feedback (9)