1

我是 com 的新手,对 MFC 知之甚少,我们可以使用 CStringArray 来收集字符串。在以下 com 组件的情况下,我对如何在 com 中使用字符串感到困惑。以下是案例,我正在开发 com 组件以及使用它,在我的 com 组件中,以下是功能要求,从 xml 文件中读取二维数组并将其转储到一个通用数组中,例如,

_bstr_t          bstrMember1Name,bstrMember2Name;
IEachData        portsDataNode;
while(portsDataNode = CollectionOfData->NextData())
{
    if (!GetStringAttribute(portsDataNode, _T("Member1"), bstrMember1Name))
    {
            hr = E_FAIL;
    }
    if (!GetStringAttribute(portsDataNode, _T("Member2"), bstrMember2Name))
    {
            hr = E_FAIL;
    }
 }

这是函数体,因为我从一个 com 公司调用中获取 Member1 和 Member2 作为返回类型,但我需要收集每个和值。那么函数的参数是什么?我如何将 Member1 和 Member2 收集到单个变量中?

4

1 回答 1

1

对不起。我没有那样理解你的问题。如果你想返回一个数据集合(比如数组),你需要一个 SAFEARRAY。所以使用 SafeArrayCreate。如果我不是仅 COM 并且您需要自动化,则必须使用 VARIANT 安全阵列。SAFEARRAY 可以跨 COM 边界传递。BSTR 的 SAFEARRAY 是可能的。还有多维数组

于 2013-10-02T08:45:04.083 回答