У меня есть своя dll библиотека, где .h
файл:
// StringAPI.h
#ifdef STRINGLIBRARY_API
#define STRINGLIBRARY_API __declspec(dllexport)
#else
#define STRINGLIBRARY_API __declspec(dllimport)
#endif
class STRINGLIBRARY_API String
{
/* ... */
public:
STRINGLIBRARY_API friend String operator+(const String& lhs, const String& rhs);
STRINGLIBRARY_API friend String operator+(const String& lhs, char c);
friend bool operator>(const String& lhs, const String& rhs);
friend bool operator>=(const String& lhs, const String& rhs);
friend bool operator<(const String& lhs, const String& rhs);
friend bool operator<=(const String& lhs, const String& rhs);
friend bool operator==(const String& lhs, const String& rhs);
friend bool operator!=(const String& lhs, const String& rhs);
STRINGLIBRARY_API friend std::ostream& operator<<(std::ostream& stream, const String& str);
STRINGLIBRARY_API friend String& operator>>(std::istream& stream, String& str);
};
У меня не получается добавить STRINGLIBRARY_API
другим friend
функциям. Почему? И из-за этой проблемы я не могу использовать эти методы там, куда я подключаю эту библиотеку. Например:
// main.c
#include "StringAPI.h"
int main()
{
String a("Hello");
String b("World");
bool c = a > b;
}
И тут я получаю LINK error:
error LNK2019: unresolved external symbol "bool __cdecl operator>(class String const &,class String const &)" (??O@YA_NABVString@@0@Z) referenced in function _main
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь в силу своих знаний написать движок дли игры в русские шашки на C++ (если точнее, уже по большей части написал)Требуется определить,...
У меня есть две функции, 1 для записи в файл предложения ,2 для чтения его и сохранения предложения в переменную, но когда я хочу вывести предложение...
Вот есть такой градиентПутем различных изменений % у transparent и цвета #dde так и не понял по-какому принципу это строится