我写了一个控件SOAVista.ocx,将它复制到system32目录下,在VB6.0中从工程->元件中导入,再放到窗体上.写下如下代码:
Private Sub Command1_Click()
    '控件名.函数名 参数1,参数2
    SOA1.FormShow True, vbModeless
End Sub麻烦的是换台电脑后每写一个程序都得如此手工导入.用shell "regsvr32..."注册也不行.请教可否用API中的loadlibrary,GetProcAddress,CallWindowProc等在程序中动态调用.ocx,如何调用?或者有其他的方法.

解决方案 »

  1.   

    用regsvr32命令时要控件的路径
      

  2.   

    用regsvr32命令时要控件的路径
      

  3.   

    你要先在命令提示符中转到控件路径
    然后再用regsvr32命令注册
      

  4.   

    把文件复制到app下 软件启动使用regsvr32 注册ocx 然后使用CreateObject创建对象并调用其中的方法CreateObject创建并返回一个对 ActiveX 对象的引用。语法CreateObject(class,[servername]) CreateObject 函数的语法有如下部分:部分 描述 
    class 必需的; Variant (String). 要创建的应用程序名称和类。 
    servername 可选的; Variant (String). 要在其上创建对象的网络服务器名称。 
    class 参数使用 appname.objecttype 这种语法,包括以下部分:部分 描述 
    appname 必需的;Variant(字符串)。提供该对象的应用程序名。 
    objecttype 必需的;Variant(字符串)。待创建对象的类型或类。 
    说明每个支持自动化的应用程序都至少提供一种对象类型。例如,一个字处理应用程序可能会提供 Application 对象,Document 对象,以及 Toolbar 对象。要创建 ActiveX 对象,只需将 CreateObject 返回的对象赋给一个对象变量:'声明一个对象变量来存放该对象
    '的引用。Dim as Object 采用后期绑定方式。
    Dim ExcelSheet As Object
    Set ExcelSheet = CreateObject("Excel.Sheet")上述代码将启动该应用程序创建该对象,在本例中就是创建一个 Microsoft Excel 电子数据表。对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。在下面的示例中,可以使用对象变量 ExcelSheet 来访问新建对象的属性和方法,以及访问 Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。'设置 Application 对象使 Excel 可见
    ExcelSheet.Application.Visible = True
    '在表格的第一个单元中写些文本
    ExcelSheet.Cells(1, 1).Value = "This is column A, row 1"
    '将该表格保存到 C:\test.doc 目录
    ExcelSheet.SaveAs "C:\ TEST.DOC"
    '使用应用程序对象的 Quit 方法关闭 Excel。
    ExcelSheet.Application.Quit
    '释放该对象变量
    Set ExcelSheet = Nothing使用 As Object 子句声明对象变量,可以创建一个能包含任何类型对象引用的变量。不过,该变量访问对象是后期绑定的,也就是说,绑定在程序运行时才进行。要创建一个使用前期绑定方式的对象变量,也就是说,在程序编译时就完成绑定,则对象变量在声明时应指定类 ID。例如,可以声明并创建下列 Microsoft Excel 引用:Dim xlApp As Excel.Application Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)前期绑定的变量引用可以提供更好的性能,但该变量只能存放声明中所指定的类的引用。可以将 CreateObject 函数返回的对象传给一个参数为对象的函数。例如,下面的代码创建并传递了一个 Excel.Application 对象的引用:Call MySub (CreateObject("Excel.Application"))可以在一个远端连网的计算机上创建一个对象,方法是把计算机的名称传递给 CreateObject 的 servername 参数。这个名称与共享名称的机器名部份相同:对于一个共享名称为 "\\\\MyServer\\Public," 的 servername 参数是 "MyServer" 。下面的代码返回在一个名为 MyServer 的远端计算机上运行的 Excel 实例的版本号:Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application", "MyServer")
    Debug.Print xlApp.Version如果远端服务器不存在或者不可用,则会发生一个运行时错误。注意 当该对象当前没有实例时,应使用 CreateObject。如果该对象已有实例在运行,就会启动一个新的实例,并创建一个指定类型的对象。要使用当前实例,或要启动该应用程序并加载一个文件,可以使用 GetObject 函数。如果对象已登记为单个实例对象,则不管执行多少次 CreateObject,都只能创建该对象的一个实例。
      

  5.   

    CreateObject用了,它针对应用程序,
    而我的只是一个控件,
    我先注册,后创建,
    Dim ExcelSheet As Object 
    Set ExcelSheet = CreateObject("SOA.FrmShow")他报错: activeX component can't create object
    该怎么办?
      

  6.   

    Microsoft Excel 9.0 Object Library 引用了吗?