• 締切済み

コンパイルエラー

VB6 OS XP コンパイルエラーが起こります。 インタープリターでは問題なく動作します。 以下 エラーメッセージ F:\With You Sorce\PlugIn\Math_H\Hplus.bas(230) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'e:\work\utc2\src\P2\main.c', line 507) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information ソースをいじくって、 KOTA$ = "1\" + Str$(W% \ Y%) この1行を削ると、スムーズにコンパイルされます。 これは、VB6のコンパイラーのバグでしょうか。

みんなの回答

回答No.5
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

全く想像です。 バックスラッシュは¥(英語圏のバックスラッシュは日本語では¥)、+は&(文字列結合演算子) とか関係ありませんか。

daikaisan
質問者

お礼

VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。

daikaisan
質問者

補足

VBは日本語化されていますのでちがうと思います。 なにせ、変数名に全角文字が使えるのですから。

  • yukigle
  • ベストアンサー率14% (9/63)
回答No.3

互換性が怪しいですね。BASICには規格が幾つもあるので、コンパイラーのバグではなく、非互換からくるエラーでしょう。 「¥」除算(整数)は、一部の処理系のみですので 、試しに「/」除算(実数)にしてみて下さい。STR$の引数は、実数(適正値)でもいいはずです。

daikaisan
質問者

お礼

ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。

daikaisan
質問者

補足

このコードは Math.Basという300行程度のたった1行で、 コンパイルエラーがでます。 Math2.Basを新たに作り、プロシージャなど移動させるなどして、なんどもコンパイルして、原因箇所をつきとめました。 >非互換からくるエラーでしょう ではありません。 前後で、かなり「\」を多用しております。 If K% Mod W% = 0 Then KO$ = Str$(K% \ W%) ElseIf W% Mod K% = 0 Then KO$ = "1\" + Str$(W% \ Y%) BS$ = "@" 'KO$ = "1\" + Str$(W% \ Y%) この行の「\」のみひっかかります。 これを取り除くとコンパイルできます。 ご指摘の前に、「 KO$ = "1\" + Str$(W% / Y%)」 として、エラー回避はできましたが。 なっとくできずにいます。 なぜ、問題行の「\」のみひっかかるのか。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

VB6のバクというより 何かサードパーティ製のコントロールを使っていませんか

daikaisan
質問者

お礼

ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。

daikaisan
質問者

補足

使っておりません。

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.1

はじめて見るエラーメッセージです。 コードがよく分かりませんが、 「Str$」は文字列処理関数です。 文字列の加算だったら、 KOTA$ = "1\" & Str$(W% \ Y%) じゃないのかな?

daikaisan
質問者

お礼

ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。

daikaisan
質問者

補足

文字列の結合は、& でも + でもいけます。 インタープリター上ではきっちり動作しています。

関連するQ&A