• ベストアンサー

BCCで出来るのにVCだと出来ない。

あるソースをborlandでコンパイル(メイク)して実行するとうまくいくのですが そのソースをVisual stdioでコンパイルして実行するとエラーが出てしまいます。 このようなことが普通あるのでしょうか? それともVisual Stdioのどこかがおかしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.6

↓BCCだとエラーが出なかったけど大概のコンパイラでは実行時エラーになると思う #include<stdio.h> int main(void) { char *a = "aaa"; *a = 'b'; printf("%s", a); return 0; }

noname#61385
質問者

お礼

ありがとうございます! 返事遅くなってしまいましたが原因はそれでした。

その他の回答 (5)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.5

実行時エラーということですから、BCCではたまたま症状があらわれなかっただけという可能性もあります。 変数の初期化を忘れた場合になんかに起こります。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

初めから移植性に配慮した設計&コーディングを行っていなければ、普通に起こりえます。 移植性に配慮する際は、標準規格に厳密合致しているかどうかだけでなく、処理系の不具合にも配慮する必要があります。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス ・VCLとMFCの違いかもしれない。  BCC製ではVCL、VC製ではMFCを使っているソースの場合。  一方では正しくコンパイルできるがもう一方ではコンパイルができなくなります。 ・これ以外でエラーが出る場合はオプション設定などでマルチバイトとUnicodeの  文字コードをTEXT()マクロなしに文字列リテラルを書いているとか。  他にも原因はありそうですがこれ以上はソースを見ないと分かりません。

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

エラー内容や、ソースなどを見ないと断言はできませんが、 一般にソースの問題である可能性の方が高いです。 普通に起こります。 ソースがバグってるのか、処理系定義の差なのかは見ないとなんとも…です。

回答No.1

起こりえます。 たとえばコンパイラの独自拡張を利用したコードとか。 食わせたコードを見ないことには何ともいえませんけども。

関連するQ&A