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