[#43191] ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

13 messages 2007/02/17
[#43193] Re: ActiveTclのインストール — Hidetoshi NAGAI <nagai@...> 2007/02/18

永井@知能.九工大です.

[#43198] Re: ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...> 2007/02/18

永井さん、アドバイスありがとうございます。

[#43217] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

13 messages 2007/02/24

[ruby-list:43161] Re: Exerb 4.1.0とswin060205でアプリケーションエラー

From: UMESHIMA Shingo <shin5home@...>
Date: 2007-02-07 12:37:53 UTC
List: ruby-list #43161
梅島です。

arton wrote:
> artonです。
> 
> VC++6SP5で作ったexerb-4.1.0+Ruby1.8.5pl12+swin060205では動作しています。

ありがとうございます。
VC6では問題なしということですね。

> rb_w32_getprotobynumberと出ているところが、なにかとんでもなく変なことが
> 起きているようですね。(スタックトレースがカーネルの中からrubyを呼んでい
> るように見える)
> とりあえず、エラーになった箇所の修正内容を示したほうが良いと思います。
> 

修正箇所は以下になります。
> diff -urN exerb-4.1.0-orig/src/libruby19/src/config.h exerb-4.1.0/src/libruby19/src/config.h
> --- exerb-4.1.0-orig/src/libruby19/src/config.h	Fri May 12 09:58:37 2006
> +++ exerb-4.1.0/src/libruby19/src/config.h	Fri Feb  2 18:16:36 2007
> @@ -1,4 +1,4 @@
> -#if _MSC_VER != 1200
> +#if _MSC_VER < 1200
>  #error MSC version unmatch
>  #endif
>  #define STDC_HEADERS 1
> diff -urN exerb-4.1.0-orig/src/libruby20/src/config.h exerb-4.1.0/src/libruby20/src/config.h
> --- exerb-4.1.0-orig/src/libruby20/src/config.h	Thu May  4 13:41:06 2006
> +++ exerb-4.1.0/src/libruby20/src/config.h	Fri Feb  2 18:16:50 2007
> @@ -1,4 +1,4 @@
> -#if _MSC_VER != 1200
> +#if _MSC_VER < 1200
>  #error MSC version unmatch
>  #endif
>  #define STDC_HEADERS 1
> diff -urN exerb-4.1.0-orig/src/libruby19/src/config.h exerb-4.1.0/src/libruby19/src/config.h
> --- exerb-4.1.0-orig/src/libruby19/src/config.h	Fri May 12 09:58:37 2006
> +++ exerb-4.1.0/src/libruby19/src/config.h	Fri Feb  2 18:16:36 2007
> @@ -1,4 +1,4 @@
> -#if _MSC_VER != 1200
> +#if _MSC_VER < 1200
>  #error MSC version unmatch
>  #endif
>  #define STDC_HEADERS 1
> diff -urN exerb-4.1.0-orig/src/exerb/utility.cpp exerb-4.1.0/src/exerb/utility.cpp
> --- exerb-4.1.0-orig/src/exerb/utility.cpp	Tue May  9 10:10:49 2006
> +++ exerb-4.1.0/src/exerb/utility.cpp	Wed Feb  7 14:44:44 2007
> @@ -120,8 +120,8 @@
>  exerb_get_filename(const char *filepath)
>  {
>  	char *filename = NULL;
> -	if ( filename = ::strrchr(filepath, '\\') ) return filename + 1;
> -	if ( filename = ::strrchr(filepath, '/')  ) return filename + 1;
> +	if ( filename = (char *)::strrchr(filepath, '\\') ) return filename + 1;
> +	if ( filename = (char *)::strrchr(filepath, '/')  ) return filename + 1;
>  
>  	return filepath;
>  }

最後の(char *)のキャストはVisual Studio 2005(VC8)だけで発生する問題の
ようでした。試しにVisual Studio .NET 2003(VC7.1)でコンパイルしてみた
ところ、この箇所は修正しなくてもコンパイルできました。

# 他の方にお願いしただけなので動作確認はしていません。
# VC8でコンパイルするとwarningがわらわらと出ますがそこは無視しています。

どうやらコンパイル環境の違いが結果に影響していそうですね。
Visual Studio 2005 Express & Platform SDKという組み合わせだと設定の違い
でコンパイル結果が違うという話もありそうです。

Visual Studio 2005 Express & Platform SDKの環境ですと、ruby-1.8.5-p12は
コンパイルできますが、ruby-1.8.4はminirubyがSegmentation Faultを起こした
りしていました。

# Makefile.subをruby-1.8.5-p12から拝借するというお手軽な手段
# を試した結果ですが。

--
UMESHIMA Shingo

In This Thread