有个问题不知道该怎么表述 
比如format函数 我知道它是vb的内置函数 但它是包含在vb的哪个对象(不知道是不是该称为对象)中?
如果想引用这个对象(估且称为对象吧) 该怎么引用?
-----------------------------------------------
以下是我遇到的实际问题:
工程中使用了ScriptControl控件(sc)
sc.AddObject "Me",Me,True假如我希望在vbscript中使用vb的Format函数
我可以在From模块中定义个函数
Pubcli Function Format1(s,s) As String
Format1=Format(s,s)
End Function这样就可以在vbscript中间接的使用Format函数了
但实际已经中很难预料vbscript会使用到哪些vbs没用的vb内置函数
所以想知道是否可以在sc中直接引用某个vb对象,达到在sc中可以使用全部vb内置函数的目的?
另外vbs引用winApI是很麻烦的事 是不是不可以也在sc中添加一个"user32"对象?比如:
sc.addobject "vbfunc",vb.????
sc.addobject "Win",user32的实例这样的代码该怎么写?

解决方案 »

  1.   

    楼主完全多想了,是用C/C++/C#那套的经验来看VB。
    VB是“非常强大”的,你使用那些内置函数,完全不需要引用什么,直接用就好了。就是说,如同这个format一样,只要是内置的,你只管在ScriptControl里用。
      

  2.   

    VB是最人性化的编程工具,无需编程者去记什么函数类库名和层级位置(就算有代码智能提示,也够啰嗦的),直接用,它自己去找了。真正的工具为人服务。C类型的,都是反过来,人为了编译器为了工具服务。
      

  3.   

    情况好象没有这样乐观 还是拿format打比方
    vbs中使用的是
    FormatCurrency 
    FormatDateTime 
    FormatNumber 
    FormatPercent
    等等 比vb的format麻烦得多,
    再比如vb的DoEvents StrConv等都是vbs没有的
      

  4.   

    VBA确实比VBS功能强大 函数更接近vb
    先引用Excel 然后让vbs控制VBA 这个办法可以实现我的需求 我也实现了
    但毕竟还是绕了个很大的弯子 不是很满意
    而且我想知道能不能从根本(vb)上解决问题
      

  5.   

    打开VB,菜单:工程-》引用 里第一项对用的VBA6.DLL,也许这是你要找的库
    我说是也许
      

  6.   

    估计很难,不知道vb6chs.dll中有没有内置函数
      

  7.   

    非常感谢您的建议 确实是在vba里面 但没找到定义的办法
      

  8.   

    VB-IDE 中 F2 打开 Object Browser,你会找到 Format 函数是属于 VBA.Strings 模块,无法作为对象加入到 VBS 中——实际上 VBA 中仅有的两个对象是 Collection 和 ErrObject,其他都是模块。VBS 其实有自己的函数库 http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.85).aspx
    需要用 VBA 函数只能封装,没什么好的办法。
      

  9.   

    +
    以前在asp中用vbs时,没有strconv函数,只好自己封装vba的一些函数到一个dll中,再在asp中用这个dll
      

  10.   

    估计是在MSVBVM60.DLL里面实现的
      

  11.   

    其实这主要是接口问题,你不用考虑得太复杂,如果不考虑安全性,直接
    用VB或其他的开发工具开发些 COM 组件/ActiveX控件 对象给脚本语言调用
    就可以了,如果考虑浏览器对 vbscript 的安全影响,这种字符串分析过程
    自己写也是可以的。至于API函数这种东西,在vbscript里,也只能通过 
    COM 或 ActiveX 对象来实现了,不过估计会被浏览器安全屏蔽掉。
    有时候也可以考虑一下 BHO 接口。