如何在C ++中以DLL安全的方式返回多个值?

时间:2011-04-05 09:51:14

标签: c++ dll return-value

我想在C ++中以交叉DLL安全的方式返回多个值。

我应该使用stuct / class吗?

2 个答案:

答案 0 :(得分:2)

虽然你的问题不是很清楚,但这里有一些提示:

  1. 类/结构体意味着对事物进行分组。虽然可以创建一个用于对所有返回值进行分组的结构,但它实际上取决于这些返回值的相关程度。这更多的是遵守惯例和OOP原则。

  2. 要返回多个值,可以使用指针和引用。例如,跟随函数原型以常规方式返回bool但接受两个指针作为参数。这些指针指向的对象可以在被调用函数中更改,因此可以返回多个值。

  3. 功能原型:

    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