C++ 调用C#组件的问题(PI实时数据库的组件)?

Guanfj 2012-08-14 04:54:45
最近在写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();
}
这里面提示的错误如下:
错误 1 error C2039: “Value”: 不是“PISDK::PIValue”的成员
...全文
642 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
satan_chw 2015-03-12
  • 打赏
  • 举报
回复
楼主在C#环境下调用成功了是吗 string svalue = pv.Value.ToString(); //值 我想问下,我在测试上面代码时,取到的值是System._ComObject 求解,为什么不能取到真正的值
wangyu071003 2013-01-16
  • 打赏
  • 举报
回复
引用 楼主 Guanfj 的回复:
最近在写VC++读取PI实时数据库,利用PI实时数据库提供的C#组件,在C#中调用成功,但在VC++中调用时,明明在C#中有的组件变量,在VC++中不提示,也编译不过去,提示就是没有这个变量。请高手们指导,其它的代码都通过去了,也就是说,引用都正确的。 代码如下: C#: PISDK.PIValues pvs=...; ……
LZ,我想用C#编程读取PI的实时数据库中的数据,但是对这个一点都不了解,不知道怎么进行,希望能和您交流一下,望您指教,谢谢!!!我的QQ:674884644,邮箱wangyu071003@163.com 希望加您的QQ或和您邮箱联系也可以,谢谢!!
dickbarry 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

PITimeServer.PITime TimeStamp { set; get; }
PISDK._PIValue 的成员
object Value { set; get; }
PISDK._PIValue 的成员
PISDKCommon.NamedValues ValueAttributes { set; get; }
PISDK._PIValue 的成员
……
[/Quote]

这个应该是C#中的吧,我是指VC的声明
Guanfj 2012-08-15
  • 打赏
  • 举报
回复
PITimeServer.PITime TimeStamp { set; get; }
PISDK._PIValue 的成员
object Value { set; get; }
PISDK._PIValue 的成员
PISDKCommon.NamedValues ValueAttributes { set; get; }
PISDK._PIValue 的成员
bool IsGood()
PISDK._PIValue 的成员
PISDK.PIValue Clone()
PISDK._PIValue 的成员
Guanfj 2012-08-15
  • 打赏
  • 举报
回复
object Value { set; get; }
PISDK._PIValue 的成员
dickbarry 2012-08-15
  • 打赏
  • 举报
回复
LZ把PISDK::PIValue的声明贴一下吧

还有 ^ == * ?
Guanfj 2012-08-15
  • 打赏
  • 举报
回复
同样是上述的PIValue的属性,TimeStamp的属性就正常,编译就可以通过,还请高手们指点一下?
Guanfj 2012-08-15
  • 打赏
  • 举报
回复
我在VC++中引入了dll,其中TimeStamp,以及isGood()都好用,虽然提示不出来,但用起来,编译不出错,VC++的声明,还真没看到,查找引用时,直接就到了引用的位置,就是这个位置.

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧