У меня проблема с моим C++-приложением. Он был разработан на 32-битном ПК, на Microsoft Visual Studio 2008, и теперь я пытаюсь запустить его на 64-битном компьютере.C++ 64bit, переменная не найден
На моем 32-битном ПК он работает нормально; на 64-битном ПК Visual Studio не дает никакой проблемы с компиляцией, но затем при выполнении дает неправильные результаты. И я понял, почему.
В коде я определяю переменную типа «dag», которая представляет собой структуру для прямого ациклического графа. При отладке программного обеспечения, я заметил, что, хотя я и объявил его, позже программное обеспечение не может вставлять данные в нем, и отладчик говорит:
CXX0017: Error: symbol "dags" not found
Вот мой код:
Dag<int64_t>* dags = new Dag<int64_t>();
dags = getDagsFromRequest2(request, dags);
очень странно, что если я следую потоку внутри функции getDagsFromRequest2(), я могу ясно видеть, что переменная dags полна данных: на «quickwatch» она показывает 2342 узла внутри нее. Но когда я вернусь из функции getDagsFromRequest2() в эту часть кода, отладчик говорит: «CXX0017: Ошибка: символ« dags »не найден». Как это возможно?
Вы также можете увидеть этот снимок экрана из моего отладочного набора Visual Studio.
Что может быть проблема?
Большое спасибо
Я думаю, что это просто проблема с отладкой (возможно, причина релиза), это не влияет на поведение приложения. –
У вас есть возможная утечка памяти.Сначала вы выделяете память указателю, затем вы переписываете указатель, указывая на какую-то другую память. –
@ DavideChicco.it нет, он должен быть отлажен. Но я думаю, что у вас должно быть только два варианта режима сборки: Release и debug (я никогда не видел Debug-x64). Также aparantly это проблема отладчика, поскольку ваш код компилирует –