我想在C ++中以交叉DLL安全的方式返回多个值。
我应该使用stuct / class吗?
答案 0 :(得分:2)
虽然你的问题不是很清楚,但这里有一些提示:
类/结构体意味着对事物进行分组。虽然可以创建一个用于对所有返回值进行分组的结构,但它实际上取决于这些返回值的相关程度。这更多的是遵守惯例和OOP原则。
要返回多个值,可以使用指针和引用。例如,跟随函数原型以常规方式返回bool但接受两个指针作为参数。这些指针指向的对象可以在被调用函数中更改,因此可以返回多个值。
功能原型:
bool returnValues(int i, char* c, int* result);
答案 1 :(得分:0)
使用PIMPL成语:
在标题(dll安全表面)中:
class Type;
class MyClass
{
public:
int GetNumberOfType();
Type * GetValue(int i) { return this->values[i]; };
protected:
Type ** values;
};
来源:
#include <Type.h> // common header to real definition and declaration