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

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

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

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

21.12.2011, 19:18. Просмотров 884. Ответов 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)

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

Вектор структур в функцию - C++
1.Необходимо считать в массив структур данный хранящиеся в файле (фамилия ,оценки).Проблема в том,что количество фамилий неизвестно,и...

Размер массива при передачи в функцию - C++
День добрый, подскажите столкнулся с такой проблемой: void masssize (char mass) { int size = sizeof(mass)/sizeof(mass); cout...

В чем ошибка при передачи статического массива в функцию - C++
Не кидайте камни за использование глобальных переменных и статических двумерных массивов. Вроде все делаю по науке, вот так: ...

Куда именно копируется значения аргумента при передачи в функцию? - C++
Куда именно копируется значения аргумента при передачи в функцию? И куда(где:) ) деваются эти копии в этом частном случае? ...

Динамический массив структур (не происходит передачи и некорректно удаляется) - C++
Всем привет! Решил изучить динамический массив через realloc... Написал простенькую программу... Но при ее выполнении не...

При передаче аргумента в функцию каким из ниже приведенных способов его изменение в функции повлияет на его значение в остальной части программы - C++
1. По указателю 2. По классу 3. По значению 4. По оператору 5. По ссылке

6
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
21.12.2011, 19:54 #2
После struct smth {} должна быть точка с запятой. Искренне ваш, К.О.
1
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)
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2011, 21:34 #4
где using namespace std; ? или почему вектор в коде без std?
или вы что-то не запостили сюда из своего кода, или ... хз
может порядок инклудов играет роль. windows попробйте инклудить первым.
1
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)

перемена инклюдов роли не сыграла.
0
DU
1483 / 1129 / 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 библиотеками химичили?
1
NewProgrammer:)
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 12
21.12.2011, 22:19  [ТС] #7
вроде да.Засунул вместо одной из них либ из VC++6.Переустанавливать придётся? где есть вариант не онлайн установщика - некомфортно онлайном как-то?У меня ваш пример не компилится.
0
21.12.2011, 22:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 22:19
Привет! Вот еще темы с ответами:

Ошибки преобразования при передаче указателя на функцию - C++
Есть функция SQLITE_API int SQLITE_STDCALL sqlite3_exec( sqlite3*, /* An open database */ const...

Данные из массива структур Date передать в бинарное дерево поиска и вывести его при помощи обратного обхода - C++
Доброго времени суток! Задание:Данные из массива структур Date передать в бинарное дерево поиска и вывести его при помощи обратного...

Вектор структур - C++
Здравствуйте, есть код с вектором структур #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;vector&gt; #include...

вектор структур - C++
допустим есть структура struct human { name; age; //..... } объявим вектор std::vector&lt;human&gt; vec как сделать поиск...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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