1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23
|
||||||||||||||||
1 | ||||||||||||||||
Статическая библиотека и ссылки на процедуры21.06.2010, 13:10. Показов 2732. Ответов 9
Метки нет (Все метки)
Доброе время суток. Столкнулся с проблемой: необходимо из метода класса в статической библиотеке обратиться к процедуре, описанной вне библиотеки.
не могу понять как правильно инициализировать ссылку на процедуру в класса, как обращаться к ней из метода и как работать с ней в программе. MyLib.h:
т.е. 1) так ли описывать ссылку в классе? 2) так ли обращаться к функции из метода класса? 3) так ли использовать её в программе?
0
|
21.06.2010, 13:10 | |
Ответы с готовыми решениями:
9
Статическая библиотека Статическая библиотека Статическая библиотека Статическая библиотека на Fortran |
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
21.06.2010, 13:38 | 2 | |||||
Но где ее инициализация? дб нечто вроде
extern void libfunc( int & ); и уже ей пользоваться, либо просто хедер подключить библиотеки
1
|
1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23
|
|
21.06.2010, 13:58 [ТС] | 3 |
благодарю за помощь
метод, совпадающий с именем класса будет являться конструктором. разве описываемая процедура имеет к этому отношение? и ещё: компилятор (VC2010) указывает на ошибку на месте "generator( void (*_Gen)(int &) ) : Gen(_Gen) {}": "инициализация: невозможно преобразовать "void (__cdecl *)(int &)" в "void (__cdecl *)(int &,int &)""
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
21.06.2010, 14:15 | 4 |
у вас разные описания, видать Gen - (*Gen*)(int&,int&) - от двух параметров описан
1
|
1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23
|
|
21.06.2010, 14:40 [ТС] | 5 |
да, точно =) мог бы и сам разобраться. ещё раз спасибо.
PS я так понимаю, в MyProg.cpp использовать имя "_Ger" (при такой инициализации) для описания процедуры?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
21.06.2010, 14:47 | 6 |
а я кажется понял что вы хотите, вы хотите из main передать функцию в lib, обычно бывает наоборот)
_Gen переменная параметр конструктора всего для инициализации
1
|
1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23
|
||||||||||||||||
22.06.2010, 03:04 [ТС] | 7 | |||||||||||||||
вот-вот. именно это и хотелось. ещё раз спасибо
Добавлено через 11 часов 37 минут почему-то после ввода этих указателей программа перестала правильно считать то, что она, собственно, должно считать (без них всё работает прекрасно) В чём может быть ошибка? на всякий случай: код
MyLib.h:
программа перестаёт считать весь тот список переменных и вообще ведёт себя крайне странно: ставил "cout<<1;" везде где ни попадя (по-деревенски, но что поделать...), вообще представления не имею по какому принципу совершаются обходы циклов после введения указателей на процедуры.
0
|
46 / 46 / 5
Регистрация: 28.07.2009
Сообщений: 144
|
|
22.06.2010, 03:39 | 8 |
SentineL-88, расставь точки останова, или вообще пошагово иди. У тебя код небольшой, вполне реально.
1
|
Maniac
|
||||||
22.06.2010, 04:06 | 9 | |||||
Как на счет std::function в С++0х или boost::function
2
|
1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23
|
|
22.06.2010, 10:52 [ТС] | 10 |
JamesBlack, хоть это и не весь код, но даже целиком он, действительно, не так уж и велик. расставил точек и нашёл логическую ошибку. вообще не понятно как он раньше работал.
ISergey, благодарю за совет, но у меня вполне чёткое задание. всем ещё раз спасибо за помощь
0
|
22.06.2010, 10:52 | |
22.06.2010, 10:52 | |
Помогаю со студенческими работами здесь
10
Статическая библиотека в QT5 Ошибки,статическая библиотека Статическая библиотека VS2017 Расширение файла (.a). Статическая библиотека Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |