У меня есть следующий класс и шаблонная функция:
template <size_t num>
class String{
public:
char charArray[num];
};
template <size_t num,typename T>
void getString(String<num> & string,T number){
cout <<string.charArray<<' '<<number<<'\n';
}
, затем я попытался выполнить явное создание экземпляра следующим образом, чтобы экспортировать это создание в DLL, но в конце концов обнаружил, что он не получилсоздавался вообще, так как я получил ошибку компоновщика неразрешенного внешнего символа от компоновщика в месте, где я собирался импортировать и использовать эту функцию (точная ошибка компоновщика: " неразрешенный внешний символ" __declspec (dllimport) void _ cdeclgetString <5> (класс String <5> &, беззнаковый символ) ( _imp _ ?? $ getString @ $ 04 @@ YAXAAV? $ String @ $ 04 @@ E @ Z) * 1007 * "), поскольку" num "былоне был указан в момент, когда я намеревался создать экземпляр, во-первых, я думал, что, возможно, из-за того, что String<num> & string
будет реализован как указатель, следующий синтаксис был бы экземпляром, но, кажется, я ошибался.
template<size_t num>
__declspec(dllexport) void getString(String<num> & string,unsigned char number);
Теперь, как вы предлагаете мне создать экземпляр, потому что я не собираюсь делать это для каждого целого числа, найденного на земле !!!.