我在vb封装了一个com件(activex exe或activex dll,都注册了),该组件结构如下:
一个公共类MapServerClass,包含一个公共方法
public sub LoadForm()
    Load frmMap
end sub
一个form,名称为frmMap,该form上放置了MapX之类的地图控件(实现地图的处理,可到www.mapinfo.com.cn下)然后在我的Asp中如下调用:
dim objMap
set objMap = Server.CreateObject("MyServer.MapServerClass") 
objMap.LoadForm   '在这里出错了但我在另外一个vb 的一般exe中调用没问题。是不是线程问题,麻烦高手指点。

解决方案 »

  1.   

    objMap.LoadForm   '在这里出错了
    我经过测试发现,如果将form中的mapx之类的控件去掉就没事了。
    另外在WEB SERVICE中调用也是如此。错误信息大致为无法实例话该控件
      

  2.   

    ASP限制了服务器端不能调用任何有用户界面的控件,你想啊?谁会守着服务器旁边响应弹出的窗口或者对话框呢?
      

  3.   

    你的mapx控件是不是装载是做什么了?
      

  4.   

    安全信用传递问题,ASP调用和VB调用的身份不一样,
      

  5.   

    FORM中有自己的消息队列。如果FORM不自己关闭,那么程序就会超时。
      

  6.   

    同意IamChen(IamChen0)的说法!
    如果需要使用用户界面控件,是需要下载到客户端的。
      

  7.   

    <script language="javascript">
        function OpenDocument(UserName,FileName,ModlName,RightName){
            var IOLinkObj,ExtName;
    try
    {
                    ExtName=ModlName + " " + RightName;
             IOLinkObj=new ActiveXObject("DBstep.IOLink");
    IOLinkObj.OpenDocument(UserName,FileName,ExtName);
    IOLinkObj=null;
    }
    catch(e)
    {
    alert("请安装办公自动化系统客户端");
    }
    return;
        }
    </script>
    所调用的客户端的用户界面控件,IOLINK。DLL在客户端!