返回DLL

时间:2015-08-03 19:11:35

标签: c++ dll visual-studio-2015 dllexport

嗨其他程序员。

我遇到了一个奇怪的问题,并且完全不知道发生了什么。

所以我正在创建一个包含数学和窗口类等基础知识的小型库。

现在问题,在我的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时,甚至可以这样做吗?

2 个答案:

答案 0 :(得分:1)

<强>解决方案

类FW_API vec2

将__declspec(dllexport)放在整个类而不是单个方法上。

答案 1 :(得分:1)

你的问题是“&amp;”需要转到declspec

的另一边

而不是:

vec2& FW_API rotate(float angle);

应该是:

vec2 FW_API & rotate(float angle);