A problem with ScriptControl

本文探讨了在ScriptControl的global模块中使用AddCode方法添加JScript代码时遇到的问题。特别是当代码包含全局变量时,尝试获取过程计数会引发异常。文章对比了JScript与VBScript在此场景下的不同表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用AddCode方法将一些代码(JScript)添加到ScriptControl的global模块中,然后使用如下两句话来得到代码中的过程记数。
IScriptProcedureCollectionPtr pIProcedures = m_pScript->GetProcedures();
long count = pIProcedures->GetCount();

当添加的代码中没有全局变量而只有函数的时候没有问题,JScript代码示例如下:
function calc(a, b){return a + b;}

而当添加的代码中包含全局变量的时候会在GetCount那一句抛出0x8002802c的异常,JScript代码示例如下:
var a = 10;
function calc(b){return a + b;}

如果是采用VBScript就可以将过程和变量混合定义在global模块中而不会影响取得过程基本信息。不知道微软为什么会搞成这样?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值