Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
6 / 6 / 4
Регистрация: 16.03.2014
Сообщений: 86
1

Подключение класса, ошибки

15.11.2014, 13:03. Показов 3054. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи

Нужна была работа с файлами ini для мини игры написанной на с++ winapi

скачал в интернете класс (CIniFile Class for C++ - A robust cross platform INI file class)
ссылка (codeproject.com/Articles/8342/CIniFile-Class-for-C-A-robust-cross-platform-INI-f)

если создать консольное приложение класс работает на ура, выполняет все ф-и которые мне нужны

но при попытке включить его в свой проект winapi, ошибки

что надо сделать что бы подключить его, нормально ?

Кликните здесь для просмотра всего текста


Предупреждение 1 warning LNK4098: библиотека по умолчанию "LIBCMT" противоречит использованию других библиотек; используйте параметр /NODEFAULTLIB:library

Ошибка 21 error LNK2019: ссылка на неразрешенный внешний символ __realloc_dbg в функции "private: static void __cdecl std::locale::_Locimp::_Locimp_Addfac(class std::locale::_Locimp *,class std::locale::facet *,unsigned int)" (?_Locimp_Addfac@_Locimp@locale@std@@CAXPAV123@PAVfacet@23@I@Z)

Ошибка 17 error LNK2019: ссылка на неразрешенный внешний символ __malloc_dbg в функции "public: class std::_Yarn<char> & __thiscall std::_Yarn<char>::operator=(char const *)" (??4?$_Yarn@D@std@@QAEAAV01@PBD@Z)

Ошибка 7 error LNK2019: ссылка на неразрешенный внешний символ __free_dbg в функции "int __cdecl std::_Getloctxt<char,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >(class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > &,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > &,unsigned int,char const *)" (??$_Getloctxt@DV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@YAHAAV ?$istreambuf_iterator@GU?$char_traits@G@std@@@0@0IPBD@Z)

Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ __CrtDbgReportW в функции "public: struct CIniFile::Record & __thiscall std::vector<struct CIniFile::Record,class std::allocator<struct CIniFile::Record> >::operator[](unsigned int)" (??A?$vector@URecord@CIniFile@@V?$allocator@URecord@CIniFile@@@std@@@std@@QAEAAU Record@CIniFile@@I@Z)

Ошибка 14 error LNK2019: ссылка на неразрешенный внешний символ __calloc_dbg в функции __Getctype
Ошибка 15 error LNK2001: неразрешенный внешний символ "__malloc_dbg"
Ошибка 16 error LNK2001: неразрешенный внешний символ "__malloc_dbg"
Ошибка 18 error LNK2001: неразрешенный внешний символ "__malloc_dbg"
Ошибка 19 error LNK2001: неразрешенный внешний символ "__malloc_dbg"
Ошибка 20 error LNK2001: неразрешенный внешний символ "__malloc_dbg"
Ошибка 8 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 9 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 10 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 11 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 12 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 13 error LNK2001: неразрешенный внешний символ "__free_dbg"
Ошибка 2 error LNK2001: неразрешенный внешний символ "__CrtDbgReportW"
Ошибка 4 error LNK2001: неразрешенный внешний символ "__CrtDbgReportW"
Ошибка 5 error LNK2001: неразрешенный внешний символ "__CrtDbgReportW"
Ошибка 6 error LNK2001: неразрешенный внешний символ "__CrtDbgReportW"
Ошибка 22 error LNK1120: неразрешенных внешних элементов: 5



Ранее не приходилось делать таких махинаций, и такие ошибки вижу впервые
Прошу помощи, заранее спасибо

Добавлено через 5 минут
Только что переключил конфигурацию решения с Debug на Release - все заработало, идеально
но как заставить его работать и при дебаге?


Добавлено через 11 часов 56 минут
Немного покопался, и нашел некое решение, на сколько это хорошо или плохо не знаю

зашел в свойства проекта c/c++ =>командная строка

дополнительные параметры, ввел /MTd
и снял галочку "Наследовать от родителя или ...."
и теперь debug работает

Можно ли так делать и что это может повлечь за собой?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2014, 13:03
Ответы с готовыми решениями:

Подключение класса
Возникла небольшая непонятка с подключением класса, делаю так &lt;?php # my_class.php class...

Подключение класса
В одной статейке приведена установка fabpot/goutte Installation Add fabpot/goutte as a require...

Подключение класса
Всем привет. Есть такой код: $lib = new \LibraryDir\Library(); Выдаёт ошибку: Fatal...

Ошибки при подключение PHP
Помогите с кодом пробовал создать чат на своём сайте использовал PNP javascript Html CSS все файлы...

3
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
15.11.2014, 16:41 2
Ты просто перенеси этот класс в свой проект.
0
6 / 6 / 4
Регистрация: 16.03.2014
Сообщений: 86
15.11.2014, 22:32  [ТС] 3
Пробовал, тот же эффект
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.11.2014, 22:58 4
Лучший ответ Сообщение было отмечено GamerPro как решение

Решение

К сожалению для того, что бы вам помочь наверняка, необходимо иметь на руках этот класс-библиотеку.
Но для этого нужно её скачать.
А что бы скачать по ссылке, что вы любезно предоставили, необходима регистрация на том портале.
И как раз сейчас я не имею такой возможности.

Возможно, я смогу вам помочь, если вы каким то способом предоставите мне эту библиотеку.



А так, только на уровне предположений.
Наиболее вероятные причины ошибок линковки:

1. Несовместимые адресные модели.
Убедитесь, что вы не пытаетесь линковать 32 битное приложение с 64 битной библиотекой и наоборот.
(в случае ошибки адресной модели линковщик вижуал студии обычно так и сообщает: не совместимые архитектуры, или что то в таком духе. Скорее всего это не ваш случай).

2. Проверьте, что вы не пытаетесь линковать свое дебажное приложение с релизной библиотекой и наоборот.
Разные версии сборок - разные дефайны препроцессора.
Разные дефайны препроцессора - разный код в хэдэрах.
В таких ситуациях обычно поломки случаются ещё на этапе компиляции.
Но иногда проект может успешно скомпилироваться, и что будет дальше - не предсказуемо.
Чаще всего все работает, реже - возникают совершенно непредсказуемые баги.

3. Ключи компиляции (/MT /MTd /MD /MDd) вашего проекта могут не совпадать с аналогичными, с которыми была собрана библиотека.

Эти ключи отвечают за то, как именно будет линковаться рантайм-библиотека к вашему приложению
http://msdn.microsoft.com/en-us/library/2kzt1wy3

Ошибки, связанные с этими настройками внешне могут выглядеть как то так:
1>libcmtd.lib(tidtable.obj) : error LNK2005: __encode_pointer уже определен в MSVCRT.lib(MSVCR90.dll)
или
1>XAnimator.lib(XFileManualSaving.obj) : error LNK2001: неразрешенный внешний символ ""__declspec(dllimport) void __cdecl std::_Xlength_error(char const *)" (__imp_?_Xlength_error@std@@YAXPBD@Z)"
0
15.11.2014, 22:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2014, 22:58
Помогаю со студенческими работами здесь

Подключение файлов класса
подскажите как можно подключить отдельный файл класса к форме... Пробовал по этот вариант...

Подключение C# класса к C++ проекту
Всем привет. Есть проект на C++ metro приложения. К нему нужно подключить C# класс. Казалось бы...

Подключение класса Account
Как подключить класс Account чтобы исправились все ошибки в формах

Подключение класса к форме
есть файл windowopen.h #include &lt;SFML\Graphics.hpp&gt; #include &lt;string&gt; class WindowOpen{...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru