我想做一个能将RTF码转换成正常文字的 组件Public rtbox As RichTextLib.RichTextBox
Public Function rtftxt(req) As Variant
rtftxt = rtbox.TextRTF = req
End Function这是我在Activex DLL 里写的一段代码
可是生成DLL 注册好了 用ASP 连接这个组件 应用的时候出现问题ASP:
set rtf = server.createobject("rtf.rtftext")
response.Write(rtf.rtftxt("aaa")) 提示我 “为设置对象变量 或with block 变量”我那里做错了 之前没开发过组件 也不太会VB请高手门指点一下 如何能做出一个能将RTF编码转换成正常文字的组件 

解决方案 »

  1.   

    我也不太懂.呵呵
    但是RTBOX在你的组件里是控件来使用的.你虽然定义了它,但是实际上并不存在.
    我的一个比较笨的办法在你的DLL里加一个FORM1,在FORM上加一个RTBOX.无需代码.
    这样,在类模块里就可以使用RTBOX了.
    with form1.rtbox
     ....
    end with
    再编译成DLL文件,再注册,再在ASP里调用.
    这样应该能解决问题.因为我前几天也碰到这个问题,是这样解决的.
    不知道有没有其他高手可以有更好的办法解决.
      

  2.   

    应该是你createobject("rtf.rtftext") 没有成功,组件没注册好吧?
    你在createobject("rtf.rtftext") 之后可以加个判断,看看rtf is nothing ?
      

  3.   

    但另外加一个FORM,应该可以解决这个问题.
      

  4.   

    BAS 模块 是做什么用?我现在在DLL 工程里加了一个FORM窗体 里面放了一个RTBOX控件不晓得如何在我CLASS1里边 调用他郁闷了 其实我没学过VB 不过 他的代码我到是能看懂 就是不晓得从那里开始?
      

  5.   

    BAS模块跟这个没多大关系.主要是我自己要用到一些公共变量\过程 函数什么的放在里面供类模块调用的.
    你在CLASS1里调用的时候,只需要 "窗体名.控件名.属性",这样就可以用了.