• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Visual Studio 2010 + 2005

  • Автор темы Dimmuborgir
  • Дата начала
D

Dimmuborgir

Здравствуйте, все! Сразу к делу. Есть лайба (lib) написанная на 2005 студии. Ее недавно попробовал использовать человек, у которого стоит студия 2010. Столкнулись с проблеммой линковки. Лайба использует только стандартные виндовые библиотеки (mfc нет). Может у кого были подобные проблеммы и как их решали? Ниже приведен список всех инклудок:

C++:
#include <string>
#include <vector>
#include <algorithm>
#include <assert.h> 

#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")

#include <complex>
#include <strstream>

#include <math.h>
#include <tchar.h>

Ошибок выходит много, вот первые две:


Код:
Ошибка	2	error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (__imp_??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) в функции "public: void __thiscall Terminal::ClearCommandQueue(bool)" (?ClearCommandQueue@Terminal@@QAEX_N@Z)	D:\PProject_Tmp\BusDriver\BusDriver\BDUBus_D.lib(terminal.obj)	BusDriver

Ошибка	3	error LNK2001: неразрешенный внешний символ ""__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (__imp_??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z)"	D:\PProject_Tmp\BusDriver\BusDriver\BDUBus_D.lib(Global.obj)	BusDriver
 
R

rrrFer

попробуй создать очень простую библиотеку c единственной функцией и дай тому человеку, у которого какая-то там студия, есть подозрение что вы что-то не так подключаете )
подозреваю, что компилятор обнаруживает заголовки функций в lib, но их реализации найти не может.
 
D

Dimmuborgir

Можно конечно попробовать, но в ошибках вроде чётко прослеживается ругань на STL-овский string, а не на мои функции.. Дело в том что при точно таком же подключении в созданному проекту в 2005 студии этой лайбы у того же человека проблемм нет.
 
A

a0z

Вариант 0: Компилировать как Multithreaded а не Multithreaded Dll. При этом передавать из этой либки или в неё STL-ные объекты нельзя. Нельзя выделять память в либке а освобождать в программе.

Вариант 1: Перекомпилировать либку под 10 студией. И иметь 2 версии.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!