***本記事にはプロモーションが含まれています。***
コマンドプロンプトを出なくしたいというメールをまたもらったので、NoConsoleのことを教えてあげた。そしたら、ソースコードが簡単だったので、Rubyで書いてしまったというメールが返ってきた。
自分はRubistではないので、よくわからないけど、日本人だったらRubyくらい知らないといけないかなと、なぜか思った。
ARGV.each do |file_name|
File.open(file_name, "r+b") do |f|
f.seek(220)
kar1 = f.read(1)
int1 = kar1.unpack("c").shift
if int1 == 2
int2 = 3
elsif int1 == 3
int2 = 2
end
kar2 = [int2].pack("c")
f.seek(220)
f.write(kar2)
puts "Converted from DOS-Box to GUI." if int2 == 2
puts "Converted from GUI to DOS-Box." if int2 == 3
end
end
int main()から始まるWindows環境でのプログラムで起動時にConsoleが出てしまうってやつですよね?(QEMU?)
コンパイラがMinGW gccとかならオプションに -Wl,--subsystem=windows でも回避できますよ。
VisualC++でもプロジェクトオプションあたりからリンカにsubsystemの指定とかで変更しとけば消せたはず。
rayfillさん、コメントありがとうございます。
そうですね。でも、コンソールを消してしまうとエラーメッセージが出なくなってしまうという問題があって、コンソール付になっています。