Привет, товарищи программисты.Возврат ссылки на объект в DLL
У меня возникла странная проблема и нет абсолютно никакого понятия о том, что происходит.
Так что я делаю небольшую библиотеку с некоторыми базовыми вещами, такими как математика и класс окон.
Теперь к этой проблеме, в моем классе vec2 я хочу, чтобы возвращать ссылку на объект, но я получаю эту ошибку компиляции «ошибка C2059: синтаксическая ошибка:„__declspec (dllexport)“»
class vec2 {
public:
float x, y;
vec2(float x = 0, float y = 0) : x(x), y(y) { }
float FW_API length();
vec2 FW_API normalize();
float FW_API dot(vec2& v);
vec2& FW_API rotate(float angle);
vec2& FW_API translate(float x, float y);
vec2& FW_API translate(vec2& v);
vec2 FW_API operator+(vec2& v);
vec2 FW_API operator-(vec2& v);
vec2 FW_API operator*(vec2& v);
vec2 FW_API operator/(vec2& v);
void FW_API operator+=(vec2& v);
void FW_API operator-=(vec2& v);
void FW_API operator*=(vec2& v);
void FW_API operator/=(vec2& v);
};
FW_API
определяется как __declspec(dllexport)
.
Если я удалю амперсанды, они компилируются без проблем, но не с ними.
Так можно ли это сделать при экспорте методов в DLL?
Предъявите [ testcase] (http://stackoverflow.com/help/mcve) –
Обычно вы экспортируете классы, а не отдельные функции класса. Создайте проект DLL, чтобы получить примеры. BTW: Получите хорошую книгу на C++ и прочитайте главу о «const correctness». –
@UlrichEckhardt спасибо Я получил его на работу :) – JeppeSRC