• ベストアンサー

Cランタイムライブラリのヘッダでエラーが出る

文字列クラスを作成しているのですが、コンパイルしたところ、 以下の様なエラーが出ました。 エラー E2268 C:\bcc55\Include\tchar.h 641: 未定義の関数 'strlen' を呼び出した(関数 _strncnt(const char *,unsigned int)) これはどういうことなのでしょうか。なぜ「tchar.h」でエラーが出るのでしょうか。どなたか原因が分かる方はいらっしゃらないでしょうか。 ちなみに、環境はWindows XP、Borland C++ 5.5.1です。

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

  • ベストアンサー
noname#26650
noname#26650
回答No.4

> ファイル名は大文字と小文字が区別されないのですか? Windowsにおいては、そのとおりです。 自作の String.h は、名前を変更する方がよいと思います。 他のところで思わぬ障害を発生させないためにも。

RabbitWrap
質問者

お礼

なるほど、そういうことだったのですか。回答ありがとうございます。

その他の回答 (3)

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

string.hまたは_str.hと同名のヘッダファイルを自作しているということはないですか?

RabbitWrap
質問者

補足

String.hというヘッダに文字列クラスを宣言していますが、もしかしてファイル名は大文字と小文字が区別されないのですか?

noname#26650
noname#26650
回答No.2

私のところのBorland C++ Compiler 5.5.1 では、 tchar.h から string.h をインクルードしているように見えるのですけれど…。 何か変ですね。

RabbitWrap
質問者

お礼

回答ありがとうございます。string.hをインクルードすることで解決しました。

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

★『tchar.h』の前に『string.h』をインクルードしてはどうでしょうか。 ・『未定義の関数 'strlen' を呼び出した』エラーはプロトタイプ宣言なしで  『strlen』を呼び出したということです。ですから、string.h を include  すればエラーは出ないと思いますが…。 ・以上。試してみて下さい。

RabbitWrap
質問者

お礼

string.hをインクルードしたらエラーが無くなりました。ありがとうございます。

関連するQ&A