Посоветуйте книгу (eng) по "Visual C++" для .NET разработчика
От: Аноним  
Дата: 27.01.14 14:03
Оценка:
Здравствуйте,

Занимаюсь разработкой под .NET уже лет 7, в частности использую XNA для программирования игр для WP7.
Сейчас хочу освоить DirectX, чтобы делать игры под WP8. Соответственно нужно все писать на C++/CX (C++)

Разобраться наскоком с нескольмим sample-приложениями полностью не удалось. Явно чувствутеся пробел в знаниях C++ (особенно в плане настройик различных параметров проекта, линковщика).
Также разного рода ошибки конкретно ставят в тупик (например "Error 56 error LNK2001: unresolved external symbol __imp__CrtDbgReportW"). Для меня это выглядит как китайская грамата и суть этой ошибки я не понимаю (спасает только гугль).

В связи с этим разыскивается книга, которая могла бы помочь разобраться в примудростях "Visual C++" (все книги, что я встречал на 90% состоят из основ программирования, что мне по понятным причинам не нужно)
Re: Посоветуйте книгу (eng) по "Visual C++" для .NET разработчика
От: x-code  
Дата: 27.01.14 20:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Также разного рода ошибки конкретно ставят в тупик (например "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 и т.п.).
Откуда в больших проектах такая хрень берется — хз, но берется таки, и приходится все это прописывать, чтобы проекты компилировались.
Re: Посоветуйте книгу (eng) по "Visual C++" для .NET разработчика
От: -n1l-  
Дата: 28.01.14 02:07
Оценка:
ИМХО книга — излишнее.
Попробуйте покомпилять вручную и познакомится с компилятором в командной строке + make'ом поиграться, если есть.
Накройняк справку посмотреть по компилятору. Должна быть.
Ну по настройке этого компилятора в VS уже в гугл наверное.
Re: Посоветуйте книгу (eng) по "Visual C++" для .NET разработчика
От: Figaro Россия  
Дата: 28.01.14 05:40
Оценка:
> Разобраться наскоком с нескольмим sample-приложениями полностью не удалось. Явно чувствутеся пробел в знаниях C++ (особенно в плане настройик различных параметров проекта, линковщика).
> Также разного рода ошибки конкретно ставят в тупик (например "Error 56 error LNK2001: unresolved external symbol __imp__CrtDbgReportW"). Для меня это выглядит как китайская грамата и суть этой ошибки я не понимаю (спасает только гугль).

Судя по ошибке не находит эту Юникодную функцию(о чем говорит постфикс W) в crt библиотеке... то есть неправильно, как уже писали настроены флаги компиляции и линкера
avalon/1.0.433
Re[2]: Посоветуйте книгу (eng) по "Visual C++" для .NET разработчика
От: Figaro Россия  
Дата: 28.01.14 05:51
Оценка:
возможно насчнет юникода я неправ — может и Wide characters.... пример из хелпа:
// crt_crtdbgreport.c
  #include <crtdbg.h>
  
  int main() {
  #ifdef _DEBUG
     CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
  #endif
  }
avalon/1.0.433
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.