我已经创建了一些代码测试,我无法在没有错误的情况下构建它。当我尝试构建项目时,我收到以下错误:
-error C2228:' .FolioID'必须有class / struct / union -error C2227:左边的' - > IsLoaded'必须指向class / struct / union / generic类型 -error C2227:左边的' - >加载'必须指向class / struct / union / generic类型 -error C2227:左边的' - >计算'必须指向class / struct / union / generic类型 -error C2227:左边的' - > GetUnderlyingCount'必须指向class / struct / union / generic类型
这是我使用的代码:
BEGIN_LOG("Run");
int count;
int portfolio;
int *sResult;
char MyString[1000];
sprintf_s(MyString,"contrepartie in (select ident from tiers where ident = 10012834)");
const CSRExtraction *myExtraction=CSRPortfolio::Extraction(MyString);
((CSRExtraction *)myExtraction)->Create();
((CSRExtraction *)myExtraction)->Load();
((CSRExtraction *)myExtraction)->InitialiseFolio();
for (int f=0; f < count; f++) //folio loop
{
portfolio = CSRPortfolio::GetCSRPortfolio(sResult[f].FolioID,myExtraction);
//portfolio = CSRPortfolio *GetCSRPortfolio -> sResult[] -> FolioID();
if (portfolio == NULL)
continue;
if(!portfolio->IsLoaded())
{
portfolio->Load();
portfolio->Compute();
}
int underl = portfolio->GetUnderlyingCount();
}
END_LOG();
你能给我一些提示吗?
答案 0 :(得分:1)
那么,
sResult[f].FolioID
sResult是指向int的指针。 Ints没有会员。 因此,您无法访问它。
投资组合也是如此。
只有结构和类才有成员。
我想你真正想要做的是这样的事情:
CSRPortfolio *portfolio = CSRPortfolio::GetCSRPortfolio(sResult[f],myExtraction);
请注意,在您的示例中,sResult完全未初始化。访问将因此崩溃。