读书人

C++ 调用C#组件的有关问题(PI实时数据

发布时间: 2013-01-23 10:44:49 作者: rapoo

C++ 调用C#组件的问题(PI实时数据库的组件)?
最近在写VC++读取PI实时数据库,利用PI实时数据库提供的C#组件,在C#中调用成功,但在VC++中调用时,明明在C#中有的组件变量,在VC++中不提示,也编译不过去,提示就是没有这个变量。请高手们指导,其它的代码都通过去了,也就是说,引用都正确的。
代码如下:
C#:
PISDK.PIValues pvs=...;
foreach (PISDK.PIValue pv in pvs)
{
PITimeServer.PITime pi = pv.TimeStamp;
string stime = pi.LocalDate.ToString();//时间戳
string svalue = pv.Value.ToString(); //值
}
运行什么问题也没有。

VC++:
PISDK::PIValues ^pvs;
PISDK::PIPoint ^ipoint = myServer->PIPoints[gcnew System::String(tagName)];
pvs = ipoint->Data->RecordedValues(startTime, endTime, PISDK::BoundaryTypeConstants::btInside, gcnew System::String(""), PISDK::FilteredViewConstants::fvRemoveFiltered,status);
for (int i=0;i<pvs->Count;i++)
{
PISDK::PIValue ^pv = pvs[i];
PITimeServer::PITime ^pi=pv->TimeStamp;
CString conf="0";
if(pv->IsGood())
conf="100";
CString value=pv->Value->ToString();
CString stime=pi->LocalDate.ToString();
}
这里面提示的错误如下:
错误1error C2039: “Value”: 不是“PISDK::PIValue”的成员

[解决办法]
LZ把PISDK::PIValue的声明贴一下吧

还有 ^ == * ?
[解决办法]

引用:
PITimeServer.PITime TimeStamp { set; get; }
PISDK._PIValue 的成员
object Value { set; get; }
PISDK._PIValue 的成员
PISDKCommon.NamedValues ValueAttributes { set; get; }
PISDK._PIValue 的成员
……


这个应该是C#中的吧,我是指VC的声明

读书人网 >C++

热点推荐