Greetings, I'm having a slight error with a certain program in wine. I'm using RPG Maker XP to make an rpg game. It utilizes a modified version of ruby called RGSS. I am using a script that opens a debug output console, it works fine in M$ Windows, but I get the following error in wine: > Microsoft Visual C++ Runtime Library > Runtime Error! > > Program: E:\RPGXP\SDK\Game.exe > > > This application has requested the Runtime to terminate it in an unusual way. > Please contact the application's support team for more information. Here is the script in question: Code: #=============================================================================== # ** Debug #------------------------------------------------------------------------------- # Provides a console window to log debugging messages and prints to a log file #=============================================================================== module Debug @active = false begin @file = File.open('debug.log', File::CREAT|File::APPEND|File::WRONLY) rescue IOError print "Could not open debug.log for writing" end #----------------------------------------------------------------------------- # * Open a console window for debug output #----------------------------------------------------------------------------- def self.start @active = true if self.active # Open console window and select it for :puts Win32API.new("kernel32", "AllocConsole", "V", "L").call $stdout.reopen("CONOUT$") # Bring the game window back to the front Win32API.new("user32", "SetForegroundWindow", "L", "L").call(hwnd) f = File.open("Game.ini") lines = f.readlines() s = lines[3] len = s.size title = (s[6,len - 7]) Win32API.new("kernel32","SetConsoleTitleA","p","s").call("#{title} -- " + "Debug Console") end self.header end #----------------------------------------------------------------------------- # * Stop debugging #----------------------------------------------------------------------------- def self.stop Win32API.new("kernel32", "FreeConsole", "", "L").call if self.active @active = false end #----------------------------------------------------------------------------- # * Write log headers #----------------------------------------------------------------------------- def self.header return if @written @written = true # Write log headers self.log("========================================================") self.log(Time.now) self.log("--------------------------------------------------------") end #----------------------------------------------------------------------------- # * Stop debugging #----------------------------------------------------------------------------- def self.active return (@active and ($TEST or $DEBUG)) end #----------------------------------------------------------------------------- # * Write to console #----------------------------------------------------------------------------- def self.log(string) self.header puts string if self.active @file.print string.to_s + "\n" if @file != nil end #----------------------------------------------------------------------------- # * Write to console; not done every frame #----------------------------------------------------------------------------- def self.log_by_frame(string, sec = 5) self.log(string) if Graphics.frame_count % (Graphics.frame_rate * sec) == 0 end #----------------------------------------------------------------------------- # * Find the game window and return it #----------------------------------------------------------------------------- def self.hwnd if $HWND == nil find = Win32API.new('user32', 'FindWindowA', %w(p p), 'l') $HWND = find.call('RGSS Player', Settings["Title"]) end # Finds Window return $HWND end self.start end After some extensive testing, I have determined the following line of code to be the cause of the error: Code: $stdout.reopen("CONOUT$") This line is the one that directs ruby to print to the console window. I don't get the error if I comment out the line, but nothing gets printed to the console either. Can anyone tell me how to fix this? Thank you, Draycos Goldaryn