>外部シンボルが未解決というエラー(LNK2001)は、そのプログラムソースやリンクするライブラリに含まれていないコードを呼び出そうとしたときに出るエラーです。具体的には、CRTのリンクが指定されていない場合にでます。エラー内容的には、msvcrt.lib(デバッグ版の場合は、msvcrtd.lib)を指定していないために発生していると思います。プロジェクトの設定の問題だと思いますよ。下記を追加してリビルドしてみましたが、変わりませんでした。あっていると思うのですが。下記を追加してリビルドしてみましたが、変わりませんでした。あっていると思うのですが。msvcprt.lib(msvcprtd.lib)かもしれません。追加したら解決するという可能性はかなり低い気がします。別の何かだと思います。それがなにか?はわかりませんが。一度、プロジェクトの種類や設定(VSのバージョンやエディションもわからんですしね)を書いてみると何か見えてくるかもしれません。次の行に、テストしやすいように下記の定義を追加していたのですが、これが原因だったみたいです。最後(最初から記述されている内容の後)に移動したら、リンクエラーがなくなりました。これでなぜリンクエラーになるのかはわかりませんが、一応解決です。次の行に、テストしやすいように下記の定義を追加していたのですが、これが原因だったみたいです。最後(最初から記述されている内容の後)に移動したら、リンクエラーがなくなりました。>それならリンクエラーが出るのも納得。これでなぜリンクエラーになるのかはわかりませんが、一応解決です。publicについては最初のままでもエラーにはならないはずです。実験してみてください。ほうをもとの位置に戻すとエラーになるはずです。これについては明確な理由があります。解決済みになっているので、これ以上詳しくは書きませんが、きちんと学習しておくことをお勧めします。16:14:20)とっちゃんさん、回答ありがとうございます。解決済みになっているので、これ以上詳しくは書きませんが、きちんと学習しておくことをお勧めします。まずいのは直感でわかります。public自体がよろしくないのもわかっています。変わっても問題ないと考えてるのですが、違うのでしょうか?>問題ないどころか問題の本質そのものです。変更したように見せかけたからなので。あるように見せかけた2.C++標準ライブラリをDLLでリンクしようとした3.VCのDLLは必要なものだけエクスポートされているの3つが重なっているために発生しています。試してないので本当かどうかはわかりませんが、スタティックリンクにしたらリンクエラーは出ないのではないか?と考えます。理由は3の部分が該当するわけですが...ですが、本質部分は1にあり、この部分が理解できていないと結局のところ3でエクスポートされているものが何か?がわからないため、エラーを解決できた理由がわからないままであるということに変わりはありません。0;}このプログラムがエラーになる理由はわかりますか?それはなぜですか?ごく簡単に自分の言葉で説明してみてください。したら何が変わらなければいけないかも説明してみてください。変えることで変わるものが何かを説明できれば今回リンクエラーが発生した理由も見えてくると思いますよ。22:48:47)3.VCのDLLは必要なものだけエクスポートされているについて、考慮していなかったので、問題が発生したのですね。キーワードは、以下のようにクラス名の左に記述します。};とあるので、クラスのメンバをpublicに変更したヘッダを使うことでエクスポートしたものと矛盾が生じたと。とっちゃんさん、おかげでひとつ賢くなりました。ありがとうございました。