【问题标题】:VB Script code not calling c# functionVB脚本代码不调用c#函数
【发布时间】:2012-07-11 01:11:09
【问题描述】:

我创建了一个 C# dll 并注册为 Com 对象。 (使用 ProgID,设置 Comvisible True 并使用强名称对程序集进行签名)。

我正在尝试使用下面的 vbscript 代码调用 c# 方法

Option Explicit 
Dim testwfhandler 
Set testwfhandler= CreateObject("CoreComponentWorkflow.WorkflowHandler") 
If Not testwfhandler Is Nothing Then     
Call testwfhandler.test()     
End If 
Set testwfhandler= Nothing 

我错过了什么吗?还是做错了什么?

以下是我注册的dll的注册表信息。

【问题讨论】:

  • 您是否收到错误消息?您应该尝试在调试器中运行脚本并查看是否分配了 testwfhandler。
  • 我收到以下错误“执行工作流脚本时发生错误。脚本引擎返回以下信息:源:行 = 3 列 = 0 数字 = 429 源 = Microsoft VBScript 运行时错误说明= ActiveX 组件无法创建对象:'CoreComponentWorkflow.WorkflowHandler' HelpContext = 0 原因:Microsoft VBScript 运行时错误和描述:ActiveX 组件无法创建对象:'CoreComponentWorkflow.WorkflowHandler' 来源:LogScriptError"
  • 当你为你的类赋予属性时,你将什么参数传递给 ProgId 构造函数?
  • @Chris Dickson: [ProgId("CoreComponentWorkflow.WorkflowHandler")] 这是我的 Progid
  • 您解决了吗?我也很难尝试从脚本调用通过 com 公开的对象的方法。

标签: c# com vbscript registry


【解决方案1】:

确保您已将 C# 程序集的 ComVisible 设置为 True

使用以下方法注册程序集:

regasm /codebase YourAssembly.dll

然后像上面那样调用它。

【讨论】:

  • 我在 Assemblyinfo.cs 文件中将 ComVisible 设置为 True 并清楚地注册了程序集,请参考我在问题中附加的屏幕截图。
  • 屏幕截图太小,无法阅读。感谢您的澄清。
  • 在 C# 中实例化类的实例时是否收到任何错误?
  • 我收到以下错误“执行工作流脚本时发生错误。脚本引擎返回以下信息:源:行 = 3 列 = 0 数字 = 429 源 = Microsoft VBScript 运行时错误说明= ActiveX 组件无法创建对象:'CoreComponentWorkflow.WorkflowHandler' HelpContext = 0 原因:Microsoft VBScript 运行时错误和描述:ActiveX 组件无法创建对象:'CoreComponentWorkflow.WorkflowHandler' 来源:LogScriptError"
  • [ProgId("CoreComponentWorkflow.WorkflowHandler")] 这是我的 Progid
猜你喜欢
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2014-06-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多