Last post Feb 14, 2008 10:55 PM by nikki_doer_of_things
Feb 12, 2008 08:48 PM|threeo|LINK
off topic i know but....i'm desperate....
i recently inherited a visual studio 6 application and was asked to make some changes. i loaded the application in vs6 and tried a compile just to make sure it would compile. it did. but then.....when i tried to run it again in debug.....i got an error:
class does not support automation or does not support expected interface
i did a little research and was surprised to see some articles which state that if you change from dll to exe, you have to manually unregister the old exe. i sure don't remember ever doing this before.
does anyone know why compiling a vb app in vs6 into an exe......why does that then cause a problem when trying run the app again in debug moed?
Feb 12, 2008 09:17 PM|nikki_doer_of_things|LINK
Did you ask in the WindowsClient community? (see top link) They focus in windows forms apps.
Feb 12, 2008 09:30 PM|threeo|LINK
problem occurs at this line:
oServer.SetCredentials "corp/auser", "userpassword"
Feb 12, 2008 09:46 PM|nikki_doer_of_things|LINK
Is oServer a COM object?
Feb 12, 2008 10:39 PM|threeo|LINK
it's a reference to a third-part dll:
Public oServer As New IESAP.Server
i tried re-grabbing the dll from an archive and re-installing it and re-registering it
but i still get the error
Feb 12, 2008 10:42 PM|threeo|LINK
it seems like my problem is somehow related to me creating the exe
ever since then....i get this error
i've seen some mention on the internet about this:
Either the class you specified in the GetObject or CreateObject function call has not exposed a programmability interface, or you changed a project from .dll to .exe, or vice versa.
Check the documentation of the application that created the object for limitations on the use of automation with this class of object.
If you changed a project from .dll to .exe or vice versa, you must manually unregister the old .dll or .exe.
Feb 12, 2008 11:11 PM|threeo|LINK
ok...i tried creating a new exe program in vs6
i include the reference to the third-party dll
i put in just two lines of code:
Dim oServer As New IFSAP.Server
oServer.SetCredentials "corp\fejmx", "fejmx"
and as soon as the code tries to execute the second line....i get the exact same error as before
so i guess i have a more general question: if you have a thrid party dll and you try to set a valid property to some value and you get:
"error 430 - Class does not support automation or does not support expected interface"
what does that mean? (this same dll worked fine on friday)
Feb 13, 2008 06:51 PM|nikki_doer_of_things|LINK
Did you register it for Everyone (nor just you)?
Feb 13, 2008 07:52 PM|threeo|LINK
not sure what you mean
i did a regsvr32 thedll.dll
Feb 13, 2008 10:00 PM|nikki_doer_of_things|LINK
Go to command line, CD to where your dll file is located, and do
You should get a list of groups and permissions, like so
Verify that for your dll, every account that needs access, has it. If you're not sure what you're looking at, just post it here.
Feb 14, 2008 04:46 PM|threeo|LINK
here's what i got in response to the CACLS:
but i don't know how to interpret it really
this code ran fine before i created an EXE
Feb 14, 2008 10:55 PM|nikki_doer_of_things|LINK
It means the Users group does have Read permission, so it isn't that.
If it were me, I would try a few different things. I would try to run it normally (not debug) and see if it worked, create other projects to see if I could get it to work in anything to see if the issue was a corrupt registration of the third party dll or
something in one of my settings somewhere.
regsvr32 /u thedll.dll
before you tried to register it again, right?