Я собираюсь задать этот вопрос, а затем сам на него ответить.Я знаю, что это вопрос новичка, но, как это заняло у меня ок.два дня, чтобы найти правильный ответ, я все равно выложу.
Так много для заявлений об отказе от ответственности - этот посвящен всем вам, новичкам там:
Я пойду на проект MFCв VS 2010, и мне нужно было добавить стороннюю статическую библиотеку.Все прошло хорошо, оба проекта скомпилированы, и мой проект смог сослаться на библиотеку.Затем, когда я включил заголовочный файл из библиотеки в свой проект, я получил множество предупреждений компоновщика о функциях в библиотеке времени выполнения C, например:
Предупреждение 9, предупреждение LNK4006: _sprintf ужеопределено в libcmtd.lib (sprintf.obj);второе определение игнорируется C: path \ to \ my \ project \ MSVCRTD.lib (MSVCR100D.dll)
Думая «какого черта», я пытался запустить свой проект, и он действительно работал, пока оннаткнулся на строку кода, которая пыталась записать в какой-то файл с помощью «fostream», а затем он рухнул с каким-то страшным исключением из-за повреждения кучи.
При поиске SO я обнаружил некоторые связанные проблемы, ни одна из которых точно не соответствуетпроблема:
Я почти обернул внешнюю библиотеку в dll, прежде чем наткнулся на ответ.