VB6(Console)で湯婆婆を実装してみる
まえがき
もうだいぶ乗り遅れた感ありますけど誰もVB6でやってなさそうなので。ただ単にVB6で書いてみるだけでは面白くもないのでVB6でもコンソールアプリが作れるのも絡めて書いてみます。
開発環境
- VB6 : SP6
- MicrosoftScriptingRuntimeの参照設定が必要
実装
Option Explicit
Private Enum StandardStreamTypes
StdIn = 0
StdOut = 1
StdErr = 2
End Enum
Public Sub Main()
Dim fs As FileSystemObject
Dim outss As TextStream
Dim inss As TextStream
Dim index As Integer
Dim originalName As String
Dim newName As String
Set fs = CreateObject("FileSystemObject")
Set outss = fs.GetStandardStream(StdOut)
Set inss = fs.GetStandardStream(StdIn)
Call outss.WriteLine("契約書だよ。そこに名前を書きな。")
originalName = inss.ReadLine()
Call Outss.WriteLine("フン。" & originalName & "というのかい。贅沢な名だねぇ。")
Randomize
index = Int((Len(originalName) * Rnd()) + 1)
newName = Mid$(originalName, index, 1)
Call outss.WriteLine("今からお前の名前は" & newName & "だ。いいかい、" & newName & "だよ。分かったら返事をするんだ、" & newName & "!!")
End Sub
コンソールアプリに仕立て上げるには
上記コードをYubaba.vbpとかで保存していつも通りコンパイルするとYubaba.exeが生成されますが、このままではコンソールアプリとして機能しません。いまごろVB6でコンソールアプリを書くという酔狂な人もいないとは思いますがちょっと前にHow to Create a VB6 Console Programという2005年の記事に辿り着いたのでそれを使わせていただくと
> "C:\Program Files\Microsoft Visual Studio\vb98\LINK.EXE" /EDIT /SUBSYSTEM:CONSOLE Yubaba.exe
と、Re-linkしてやるとコンソールアプリになります(LINK.EXEのフルパスはお使いの環境により異なる場合もあります)
ちなみに名前を尋ねられて何も入力しないで[Enter]でも落ちたりはしなかったです。メッセージが「今からお前の名前はだ。いいかい、だよ。分かったら返事をするんだ、!!」みたいになります(というのを再確認したいが手元に開発環境なし・・・)
Author And Source
この問題について(VB6(Console)で湯婆婆を実装してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/Since1967/items/2ad4e8fac41300924af7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .