У меня есть класс, как этотDllImport и шаблоны в MS Visual C++
class A_DLL A
{
...
template <class T> someFunction(const T &v);
}
в библиотеке A.DLL. A_DLL составляет __declspec(dllexport)
при создании a.dll и __declspec(dllimport)
при использовании a.dll.
Проблема в том, что я пытаюсь использовать 'someFunction' в каком-то исполняемом модуле, связанном с a.dll, он работает. Однако, когда я использую его в какой-либо другой библиотеке (b.dll), он дает мне сообщение об ошибке о нерешенных внешних (someFunction и других шаблонах). Очевидно, я не должен использовать __declspec
на шаблонах, но как сделать класс с __declspec
?
Возможно, это не проблема. Не имеет значения, что вы называете это из exe или из dll. Вы уверены, что связываете оба с библиотекой? –
И как библиотека, так и exe используют другие функции из a.dll без проблем. Безусловно, единственное решение, которое у меня есть, - сделать глобальные шаблонные функции (и добавить их как друзей в класс A). Кажется, это работает. –