Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NewProgrammer:)
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 12
#1

Не работает вектор структур при передачи его в функцию-ошибки - C++

21.12.2011, 19:18. Просмотров 849. Ответов 6
Метки нет (Все метки)

Написал такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct lol{
};
#include <vector>
#include <windows>
 
struct smth{
}
 
void smthfun(vector <smth> vctr){
}
 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hprevinst,LPSTR lpszargs,int nwinmode){
    vector <smth> y;
    smthfun(y);
}
Выскочила ошибка:
error LNK2019: ссылка на неразрешенный внешний символ __imp___CrtDbgReportW в функции "public: struct smth const & __thiscall std::_Vector_const_iterator<class std::_Vector_val<struct smth,class std::allocator<struct smth> > >::operator*(void)const " (??D?$_Vector_const_iterator@V?$_Vector_val@Ulol@@V?$allocator@Usmth@@@std@@@std@@@std@@QBEABUsmth@@XZ)

Что я делаю не так или компилятор ****?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 19:18     Не работает вектор структур при передачи его в функцию-ошибки
Посмотрите здесь:

вектор структур C++
При вынесении кода в отдельную функцию выдает ошибки C++
Размер массива при передачи в функцию C++
C++ При передаче аргумента в функцию каким из ниже приведенных способов его изменение в функции повлияет на его значение в остальной части программы
C++ Динамический массив структур (не происходит передачи и некорректно удаляется)
C++ Ошибка, вектор структур
C++ Ошибки преобразования при передаче указателя на функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
21.12.2011, 19:54     Не работает вектор структур при передачи его в функцию-ошибки #2
После struct smth {} должна быть точка с запятой. Искренне ваш, К.О.
NewProgrammer:)
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 12
21.12.2011, 21:26  [ТС]     Не работает вектор структур при передачи его в функцию-ошибки #3
В оригинальном коде ; стоит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vector>
#include <windows>
 
struct smth{
};
 
void smthfun(vector <smth> vctr){
}
 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hprevinst,LPSTR lpszargs,int nwinmode){
        vector <smth> y;
        smthfun(y);
}
та же ошибка:

error LNK2019: ссылка на неразрешенный внешний символ __imp___CrtDbgReportW в функции "public: struct smth const & __thiscall std::_Vector_const_iterator<class std::_Vector_val<struct smth,class std::allocator<struct smth> > >::operator*(void)const " (??D?$_Vector_const_iterator@V?$_Vector_val@Usmth@@V?$allocator@Usmth@@@std@@@std @@@std@@QBEABUsmth@@XZ)
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2011, 21:34     Не работает вектор структур при передачи его в функцию-ошибки #4
где using namespace std; ? или почему вектор в коде без std?
или вы что-то не запостили сюда из своего кода, или ... хз
может порядок инклудов играет роль. windows попробйте инклудить первым.
NewProgrammer:)
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 12
21.12.2011, 21:43  [ТС]     Не работает вектор структур при передачи его в функцию-ошибки #5
я упростил свой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <vector>
 
using namespace std;
 
struct smth{
};
 
void smthfun(vector<smth> h){
}
 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hprevinst,LPSTR lpszargs,int nwinmode){
    vector <smth> y;
    smthfun(y);
}
ошибка:
error LNK2019: ссылка на неразрешенный внешний символ __imp___CrtDbgReportW в функции "public: struct smth const & __thiscall std::_Vector_const_iterator<class std::_Vector_val<struct smth,class std::allocator<struct smth> > >::operator*(void)const " (??D?$_Vector_const_iterator@V?$_Vector_val@Usmth@@V?$allocator@Usmth@@@std@@@std@@@std@@QBEABUsmth@@XZ)

перемена инклюдов роли не сыграла.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2011, 21:50     Не работает вектор структур при передачи его в функцию-ошибки #6
а вы не упрощайте. я же сказал, что вы что-то важное не запостили, посчитав мелочью.
вот у меня это нормально собирается (тоже немног упростил)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <vector>
 
using namespace std;
 
struct smth{
};
 
void smthfun(vector<smth> h){
}
 
//int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hprevinst,LPSTR lpszargs,int nwinmode){
int main()
{
  vector <smth> y;
  smthfun(y);
}
__imp___CrtDbgReportW - что-то с настройками проекта.
c CRT библиотеками химичили?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 22:19     Не работает вектор структур при передачи его в функцию-ошибки
Еще ссылки по теме:

Куда именно копируется значения аргумента при передачи в функцию? C++
Вектор структур C++
Вектор структур в функцию C++
Данные из массива структур Date передать в бинарное дерево поиска и вывести его при помощи обратного обхода C++
В чем ошибка при передачи статического массива в функцию C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NewProgrammer:)
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 12
21.12.2011, 22:19  [ТС]     Не работает вектор структур при передачи его в функцию-ошибки #7
вроде да.Засунул вместо одной из них либ из VC++6.Переустанавливать придётся? где есть вариант не онлайн установщика - некомфортно онлайном как-то?У меня ваш пример не компилится.
Yandex
Объявления
21.12.2011, 22:19     Не работает вектор структур при передачи его в функцию-ошибки
Ответ Создать тему
Опции темы

Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru