尝试创建PoC以从COM客户端公开/调用各种.NET对象。 .NET库包含一些类和枚举。
能够成功访问VBScript中的类但无法访问枚举。 我知道Enums是值类型,因此'CreateObject'在这种情况下不起作用。
但是我能够在VBA代码中访问相同的Enum。
问题:
如何在VBScript中访问枚举?
为什么两个COM客户端的行为不同?如果VBA对象浏览器可以看到枚举,为什么不能让VBScript创建一个?
.NET
[ComVisible(true)]
[GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000E")]
public enum Currency
{
GBP = CurrencyConvertorBL.CurrencyConvertorRef.Currency.GBP,
USD = CurrencyConvertorBL.CurrencyConvertorRef.Currency.USD,
INR = CurrencyConvertorBL.CurrencyConvertorRef.Currency.INR,
AUD = CurrencyConvertorBL.CurrencyConvertorRef.Currency.AUD
}
VBA
Private Function ConvertCurrency(fromCurrency As Currency,
toCurrency As Currency) As Double
VBScript ???
Set currencyConvertorCCY = CreateObject("CurrencyConvertorBL.Currency")
提前致谢。
答案 0 :(得分:0)
Currency
是VBA中的内置数据类型,是数字类型。你必须在你的枚举前加上你的类型库名称,不要对编译器不明确,即fromCurrency As MyProject.Currency
。
对于VBScript,请尝试以下文章:How Can I Access a Type Library From Within a Script?