Results 1 to 12 of 12

Thread: Help: Run-time Error '430'

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Nov 2000
    Location
    Posts
    130

    Help: Run-time Error '430'

    Goodday everybody...

    I made an ActiveX DLL that consists of two separate Class Module, Class1 and Class2. Then, I build the DLL as binary compatibility. I, of course, registered the DLL after that.

    Next, I made a standard EXE program that uses that DLL. I declare two separate objects for both Class1 and Class2, Object1 and Object2 respectively. Then, I build the EXE.

    The EXE program run smoothly from here on.

    After that, I tried to make some changes to the DLL. The only changes I made is logical programming. It means that no extra classes, functions or properties being added. Now, I rebuild the DLL and re-registered it.

    Now, the problem occured when I run the EXE. Object1 runs nicely. But whenever Object2 is used, an error occured.

    Run-time error '430'
    Class does not support Automation or does not support expected interface.

    I wish to know, why does this happen and how can I solve it?

    Thanks in advanced.

  2. #2
    Junior Member
    Join Date
    Feb 2002
    Location
    UK
    Posts
    23
    Click on Project-><Name> Properties
    (where <Name> is the name of your dll)

    Click on the Component tab

    Try changing the 'Version compatibility' mode to 'Binary Compatibility'

  3. #3
    FNARR
    Guest
    Have you changed anything in the public function of the class that is giving the problem. For example adding a new or changing a parameter on an existing function will cause a change to the class interface

  4. #4

    Thread Starter
    Addicted Member
    Join Date
    Nov 2000
    Location
    Posts
    130
    DarkElf007: The DLL is already built in 'Binary Compatibility' mode.

    FNARR: No, I didn't change any function name or add or delete any parameter. Only the program logic is amended.

  5. #5
    Junior Member
    Join Date
    Feb 2002
    Location
    UK
    Posts
    23
    Did you change the version number of the dll? If you rebuild the exe does it fix the problem?

  6. #6

    Thread Starter
    Addicted Member
    Join Date
    Nov 2000
    Location
    Posts
    130
    Yes, I did change the DLL version number.

    and Yes, if I rebuild the EXE, the program do run properly.

    But now, I do not wish to rebuild the EXE. Ain't it suppose to run properly if I rebuild the DLL and just re-registered the DLL?

  7. #7
    Junior Member
    Join Date
    Feb 2002
    Location
    UK
    Posts
    23
    I've created a simple program, a dll with 2 classes and a application that uses the dll. I've changed the program logic of the dll and the exe still worked. When when I changed the interface of the dll I got a warning message.

    The version number is set to Auto Increment. I'm running vb6+sp5. All this was done on one machine.

    So, as far as I know it should work for you as well.

  8. #8
    Your Ad Here! Edneeis's Avatar
    Join Date
    Feb 2000
    Location
    Moreno Valley, CA (SoCal)
    Posts
    7,339
    When you make a new build of your DLL it automatically registers it you shouldn't have to re-register it. Not that I think that's the problem it just sounded like you registered it again after build, and I figured I'd save you some time.

    What kind of program logic did you change? Did you change any of the dependancies the dll requires (like adding a new reference)?

  9. #9

    Thread Starter
    Addicted Member
    Join Date
    Nov 2000
    Location
    Posts
    130
    DarkElf007: Yupe, it's suppose to work as you said. That's why I was wondering what's the problem. Can't figure it out.

    Edneeis: Nope. I didn't done any changes to the dependencies. All I did is change one part of a calculation.

  10. #10
    Junior Member
    Join Date
    Feb 2002
    Location
    Mangalore ,India
    Posts
    22
    try this :
    instead of using new operator to create the object ,use
    createobject command ...
    try one of 2:

    dim ob1 as dll1.class1
    set ob1 =createobject("dll1.class1")

    or
    dim ob1 as object
    set ob1 =createobject("dll1.class1")
    sudhir shetty .

  11. #11
    swb76
    Guest
    well, try unregistering the DLL and then delete the DLL...then rebuild it..

  12. #12
    Hyperactive Member
    Join Date
    Jan 2002
    Location
    The Netherlands
    Posts
    425
    I have the same problem...

    I have a ActiveX EXE and it gives the 430 error... I can rebuild many times, but it sill errors out. When I try using the CreateObject it errors and when I do a Set Obj = New clsObj it gives me an error...

    And the same reasons. I just changed som settings in the ActiveX, no class changes or anything, and whamm!
    "Experience is something you don't get until just after you need it."

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width