|
马上注册登录,享用更多网站功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我想要从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()
(即不传参数)就可以正常执行,所以应该是传递参数出现错误,请高手指教。 |
|