2009年9月18日星期五

ActiveScriptRuby和RubyInstaller的兼容性问题

近来一直在用Luis做的RubyInstaller,这个版本的Ruby用Mingw编译,比VC6编译的快了很多。而且Mingw和VC6编译出来的东西都依赖msvcrt.dll,也算解决了Ruby极端讨人厌的DLL文件名问题。

可是RubyInstaller却跟Arton写的ActiveScriptRuby有兼容性问题,regsvr32无法注册库文件,提示“找不到指定的程序”。

用dumpbin检查了一下,Arton发布的ActiveScriptRuby从msvcrt-ruby191.dll中导入了一个vsnprintf函数,但该函数在Mingw编译的msvcrt-ruby191.dll中并不存在。

抓来ActiveScriptRuby的代码,将win32oleex.cpp第568行的vsnprintf改为_vsnprintf,使用VC6版本的include和lib文件编译通过。

写信给Arton报告了这个问题,下一个版本的ASR应该就不需要自己再改一次了。

没有评论 :