- 締切済み
コンパイルエラー
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のコンパイラーのバグでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kurinkurinkurin
- ベストアンサー率72% (13/18)
- imogasi
- ベストアンサー率27% (4737/17069)
全く想像です。 バックスラッシュは¥(英語圏のバックスラッシュは日本語では¥)、+は&(文字列結合演算子) とか関係ありませんか。
- yukigle
- ベストアンサー率14% (9/63)
互換性が怪しいですね。BASICには規格が幾つもあるので、コンパイラーのバグではなく、非互換からくるエラーでしょう。 「¥」除算(整数)は、一部の処理系のみですので 、試しに「/」除算(実数)にしてみて下さい。STR$の引数は、実数(適正値)でもいいはずです。
お礼
ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。
補足
このコードは 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)
VB6のバクというより 何かサードパーティ製のコントロールを使っていませんか
お礼
ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。
補足
使っておりません。
- kiki_s
- ベストアンサー率59% (147/248)
はじめて見るエラーメッセージです。 コードがよく分かりませんが、 「Str$」は文字列処理関数です。 文字列の加算だったら、 KOTA$ = "1\" & Str$(W% \ Y%) じゃないのかな?
お礼
ありがとうございます。 VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。
補足
文字列の結合は、& でも + でもいけます。 インタープリター上ではきっちり動作しています。
お礼
VB6のコンパイラーのみで起こるエラーだと思います。 VB6のサポートも終わってますから、原因が特定できないため、 ここで質問させていただきました。 VB6について、かなり詳しい方でないと分からないのかも。
補足
VBは日本語化されていますのでちがうと思います。 なにせ、変数名に全角文字が使えるのですから。