简单的几行代码,在我的机器上运行以后点击Command1会出现对话框显示OK1
把它生成一个Exe文件,拷到另外一台电脑上(win2k server)运行,点击Command1出现
Run-time error '429';
ActiveX component can't create object程序中引用了MSWinsck.ocx控件,而win2k server这台机器上的system32目录下有这个文件,为什么会出错呢?代码如下:'首先引用了MSWinsck.ocx
Option Explicit'定义一个带事件的Winsock对象
Private WithEvents Wsk As MSWinsockLib.Winsock
Private OuterIP As StringPrivate Sub Command1_Click()
    Set Wsk = New MSWinsockLib.Winsock
    MsgBox "ok1"
End Sub

解决方案 »

  1.   

    MSWinsck控件不是VB的标准控件。要么就把包含MSWinsck控件的文件复制到你要运行的那台计算机上,要么就把你的小程序打包,打包过程中加入包含MSWinsck的文件。再在目标计算机上安装,则可正常运行。
      

  2.   

    还有一个怪的地方就是,我点击工程->引用->浏览->C:\winnt\system32\MSWinsck.ocx
    然后我勾选了Microsoft Winsock Control 6.0 (SP5),此时打开工程文件 "工程1.vbp"中加入了一行代码
    Reference=*\G{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0#D:\WINNT\system32\MSWINSCK.OCX#Microsoft Winsock Control 6.0 (SP5)然而我再次点击工程->引用时,在列表中Microsoft Winsock Control 6.0 (SP5)并未处于选中状态,但是程序可以正常运行。我要是想去掉这个引用的话只能通过删除"工程1.vbp"中Reference=...那一行,因为工程->引用中
    Microsoft Winsock Control 6.0 (SP5)一直处于未处中状态
      

  3.   

    To:回复人: gmqsmile(江帆) ( ) 程序中只用到了MSWinsck.ocx,而已在目标机上已经注册了,还是出错做了安装程序也不行,还是出错!
      

  4.   

    不会是不支持Win2k或以上操作系统?
      

  5.   

    你原机器上的MSWinsck.ocx版本于安装机器上的MSWinsck.ocx版本不兼容。
      

  6.   

    重新打包,把相应的。DLL包含进去
      

  7.   

    一般是不兼容的问题。我以前碰到一个类似的ADO问题,装上去老是不能创建对象,后来我用INSTALLSHEILD监视它启动。把调用的文件记下来,找出其中重要的文件。才解决了这个问题。
      

  8.   

    用setup factory6.0打包,可以在网上搜索,下载;很好用的。
      

  9.   

    我想有一点可以肯定,问题出在MSWinsck.ocx上。但还是想不明白
    看来很问题够复杂了
    关注
      

  10.   

    是不是在打包ocx和dll的时候没有选择二进制兼容