Здравствуйте, Аноним, Вы писали:
А>Также разного рода ошибки конкретно ставят в тупик (например "Error 56 error LNK2001: unresolved external symbol __imp__CrtDbgReportW"). Для меня это выглядит как китайская грамата и суть этой ошибки я не понимаю (спасает только гугль).
А>В связи с этим разыскивается книга, которая могла бы помочь разобраться в примудростях "Visual C++" (все книги, что я встречал на 90% состоят из основ программирования, что мне по понятным причинам не нужно)
Найдешь — скажи

Мне самому интересно почитать, где вся эта кухня действительно нормально и толково расписана (хотя исправлять такие баги умею, в том или ином виде много раз наталкивался уже).
А ошибка скорее всего связана с тем, что нужно поменять тип генерации кода (такое бывает, когда проект линкуется например со статической библиотекой, и у них типы кодогенерации разные). Или релиз с дебагом пытаешься вместе собрать, или что-то типа того.
Смотришь свойства проекта, C++ — Code Generation, ставишь например Multi-threaded Debug (/MTd). Важно, чтобы во всех библиотеках, которые использует проект, стояло одно и то же. И пересборка проекта.
Еще бывают ошибки когда при линковке оказывается что crt-шный символ определен в двух местах — в этом случае Linker — Input, и в ignore libs запихиваешь одну из конфликтующих библиотек (типа libcd.lib vs. msvcrtd.lib и т.п.).
Откуда в больших проектах такая хрень берется — хз, но берется таки, и приходится все это прописывать, чтобы проекты компилировались.
ИМХО книга — излишнее.
Попробуйте покомпилять вручную и познакомится с компилятором в командной строке + make'ом поиграться, если есть.
Накройняк справку посмотреть по компилятору. Должна быть.
Ну по настройке этого компилятора в VS уже в гугл наверное.
> Разобраться наскоком с нескольмим sample-приложениями полностью не удалось. Явно чувствутеся пробел в знаниях C++ (особенно в плане настройик различных параметров проекта, линковщика).
> Также разного рода ошибки конкретно ставят в тупик (например "Error 56 error LNK2001: unresolved external symbol __imp__CrtDbgReportW"). Для меня это выглядит как китайская грамата и суть этой ошибки я не понимаю (спасает только гугль).
Судя по ошибке не находит эту
Юникодную функцию(о чем говорит постфикс W) в crt библиотеке... то есть неправильно, как уже писали настроены флаги компиляции и линкера
возможно насчнет юникода я неправ — может и Wide characters.... пример из хелпа:
// crt_crtdbgreport.c
#include <crtdbg.h>
int main() {
#ifdef _DEBUG
CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}