首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对象公开给VBScript时,MSScriptControl“指定的强制转换无效”

将对象公开给VBScript时,MSScriptControl“指定的强制转换无效”
EN

Stack Overflow用户
提问于 2009-06-13 08:55:21
回答 2查看 1.6K关注 0票数 6

我正在尝试将脚本功能实现到我的应用程序中。我正在使用下面的代码。每当我实例化一个新的Api对象时,应用程序都应该退出(小测试:p)

但是,应用程序在script.AddObject(...)上崩溃,并显示错误Specified cast is not valid.。这里是否遗漏了什么步骤?

代码语言:javascript
复制
public class ApiExposed
{
    public string ModuleName;

    public void Exit()
    {
        System.Environment.Exit(0);
    }
}
public class Api
{
    ScriptControlClass script;
    ApiExposed ApiObj;

    public Api()
    {
        ApiObj = new ApiExposed();

        script = new ScriptControlClass();
        script.Language = "VBScript";
        script.AddObject("tbapi", (object)ApiObj, true);

        script.Eval("tbapi.Exit()");
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-13 09:09:47

我的猜测是,ApiExposed类在COM中是不可见的--为了让VBScript与它交互,它必须是可见的。

票数 2
EN

Stack Overflow用户

发布于 2012-04-23 18:12:43

我也遇到过类似的问题。

确保在类和方法上使用[ComVisible(true)]。另外,让你的类成为公共类!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/990339

复制
相关文章

相似问题

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