iCAx开思工具箱

标题: 求助:有关CATScriptUtilities::ExecuteScript [打印本页]

作者: slayerfat    时间: 2005-10-26 17:00
标题: 求助:有关CATScriptUtilities::ExecuteScript
我想要从C++ code中执行 CATScript ,并传递一个string类型参数,
使用CATScriptUtilities::ExecuteScript,
C++端是这样的
CATVariant& oResult=result;
CATUnicodeString  functionName("CATMain");
CATUnicodeString& iFunctionName=functionName;
CATVariant iValueWithUnknownType;
CATUnicodeString stringValue("1234");
  CATBSTR refBstr;
  CATBSTR & oName=refBstr;
  stringValue.ConvertToBSTR(& oName);
  rc = ::ConvertVariant(iValueWithUnknownType, stringValue);
  CATVariant * varia=NULL;
  varia=&iValueWithUnknownType;
//传递一个参数
CATScriptUtilities::ExecuteScript(iLibraryName, catScriptLibraryTypeVBAProject, iProgramName, oResult, iFunctionName, varia, 1);

CATScript 端是这样的
Sub CATMain(ByVal aString as Variant)
msgbox "in"
'other codes
'.....
'.....
End Sub
但是发现CATScript根本没有执行(对话框没有打出来),如果C++端将varia设为NULL,ExecuteScript的最后一个参数设为0,CATScript端改为Sub CATMain()
(即不传参数)就可以正常执行,所以应该是传递参数出现错误,请高手指教。
作者: slayerfat    时间: 2005-10-26 17:10
补充一下,前面省略了iLibraryName和iProgramName的定义,C++端和CATScript端都可以编译通过
作者: slayerfat    时间: 2005-10-27 09:20
script的参数表byval 和byref都试过了还是不行
作者: slayerfat    时间: 2005-10-27 09:23
还有一个问题,就是CATscript端接收到variant型变量之后怎么还原成String型
作者: xinghesnak    时间: 2005-10-27 09:33
顶!
作者: slayerfat    时间: 2005-10-28 08:32
有人知道吗
作者: joetwo    时间: 2006-1-18 15:15
顶!
作者: joetwo    时间: 2006-1-18 15:20
CATScriptUtilities* pScri=new CATScriptUtilities();       
HRESULT rc = pScri->ExecuteScript("E:\\CATIA\\ABX.CATProduct", catScriptLibraryTypeDocument, "Macro1.catvbs",CATVariant oResult, "CATMain", NULL, 0, TRUE);
作者: joetwo    时间: 2006-1-18 15:22
我这样用完全不行!
初学者漏洞较多,请指教




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3