From: noreply@... Date: 2006-11-20T23:35:56+09:00 Subject: [ ruby-Bugs-6788 ] In a c++ program, when I call "fclose()", or "ofstream::close()" in a file that includes ruby.h, the program crashes Bugs item #6788, was opened at 2006-11-20 16:35 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=6788&group_id=426 Category: Core Group: 1.8.2 Status: Open Resolution: None Priority: 3 Submitted By: ozi alt (ozizus) Assigned to: Nobody (None) Summary: In a c++ program, when I call "fclose()", or "ofstream::close()" in a file that includes ruby.h, the program crashes Initial Comment: I am embedding ruby strings to my c++ application and calling them with rb_eval_string, and I love it. But I noticed this problem: When I call the C call "fclose()", or "ofstream::close()" in a file that includes ruby.h: First the Compiler gives a varning: Warning 4003: not enough actual parameters for macro 'close' But compilation finishes fine. Then on runtime, debugger catches an unhandled exception in the fstream file on this code: ... if (fclose(_Myfile) != 0) _Ans = 0; } ... If I put the ruby.h inclusion and fclose() call in different files, the system still gives the warnings, but the program works fine. I cannot seem to reproduce now, but when I was trying to find the problem I saw some warnings about "rb_w32_fclose" of ruby API. No, There is no problem with my code, as the problem reoccurs even with this simple program that I copy/pasted from web: remove the '#include "ruby.h"' and the program works. Else, it crashes. /* fopen example */ #include #include "ruby.h" int main () { FILE * pFile; pFile = fopen ("myfile.txt","wt"); if (pFile!=NULL) { fputs ("fopen example",pFile); fclose (pFile); } return 0; } My system: IDE: MSVS2005 on WinXPPro RUBY: ruby 1.8.2 (2004-12-25) [i386-mswin32] Good Luck ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=6788&group_id=426