首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Procedure.Exec与C++Builder XE

如何使用Procedure.Exec与C++Builder XE
EN

Stack Overflow用户
提问于 2012-10-16 14:49:44
回答 1查看 366关注 0票数 0

我有一段代码,用C++Builder-6很好地运行。

现在,我将tha程序移到C++Builder,并调用"RiconfiguraNodo << nomeNodo .“把错误报告给我。

我尝试了几种方法来重写对ole过程"RiconfiguraNodo“的调用,但是我没有找到一个有效的解决方案。

如何以适合C++BuilderXE的方式重写这段代码片段?

错误报告:

代码语言:javascript
复制
  [BCC32 Error] UnitMain.cpp(262): E2015 Ambiguity between 'operator
 System::AutoCmd::<<(const System::Currency) at c:\program files
 (x86)\embarcadero\rad studio\8.0\include\windows\rtl\sysvari.h:3561'
 and 'operator System::AutoCmd::<<(const System::TDateTime) 
 at  c:\program files (x86)\embarcadero\rad
 studio\8.0\include\windows\rtl\sysvari.h:3562'   

 Full parser context
     UnitMain.cpp(245): parsing: void _fastcall TFormMain::RiconfiguraNodo(System::UnicodeString,System::UnicodeString,System::UnicodeString,System::UnicodeString)

示例代码:

代码语言:javascript
复制
Procedure RiconfiguraNodo( L"RiconfiguraNodo" );

if (VarServerPmvManager.IsEmpty() || VarServerPmvManager.IsNull())
{
    VarServerPmvManager = VarServerPmvManager.CreateObject(ProgId_ServerPmvmanager);
}

try
{
    VarServerPmvManager.Exec( RiconfiguraNodo << nomeNodo << ipAddress << tipoPmv << cmdType );
}
catch (Exception & ex)
{
    Mylog(Fun + Sysutils::Format("ERROR=[%s] ", ARRAYOFCONST((ex.Message))));
}
EN

回答 1

Stack Overflow用户

发布于 2012-10-16 15:10:52

我找到了解决办法。过程exec只需要变体而不是普通字符串。

代码语言:javascript
复制
 Variant vNomeNodo, vIpAddress, vTipoPmv, vCmdType;

            vNomeNodo   = nomeNodo;
            vIpAddress  = ipAddress;
            vTipoPmv    = tipoPmv;
            vCmdType    = cmdType;


VarServerPmvManager.Exec( RiconfiguraNodo << vNomeNodo << vIpAddress << vTipoPmv << vCmdType );         
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12917442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档