返回对DLL中对象的引用
Return reference to object in 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时,它甚至可能做到这一点吗?
解决方案
类FW_API vec2
将__declspec(dllexport)放在整个类上,而不是单个方法上。
你的问题是"&"需要放在declspec
:
代替:
vec2& FW_API rotate(float angle);
应该是:
vec2 FW_API & rotate(float angle);
相关文章:
- 引用对象成员函数的成员函数
- 从 Base 引用对象调用派生类的成员
- 转换引用对象的边界框?
- 现代编译器会优化只引用对象子集的局部变量吗
- l值引用对象上的Constexpr成员函数:Clang和gcc不同意
- 将 const 类型引用对象注册为类成员对象C++
- Boost Intervocess:通过迭代通过从结构引用对象的映射进行迭代时
- 无法用2D矢量成员引用对象
- 在由引用对象传递中访问由引用对象传递的变量
- 如何使用QString引用对象名称
- 使用自动迭代器引用对象
- C++ 在另一个对象中引用对象的当前状态
- 使用共享对象和引用对象进行引用计数
- 未显式引用对象的全局对象构造函数在最终二进制文件 - LD 中被丢弃
- 引用对象的动态类型何时可以更改
- 引用对象内部的指针
- C++从全局静态函数中引用对象
- C++如何仅在没有其他人直接或间接引用对象指针时删除该指针
- 如何使用C++引用对象
- 为什么引用对象仅保存特定类型的引用