HELP! runtime error~

albertkhor

Well-known member
Joined
Jan 12, 2006
Messages
150
Programming Experience
Beginner
i hv successful installer my system to pc, but when i want to run the system below msg showing and my system can run as well.

COM object with CLSID {xxxx-xxxx-xx....} is either not valid or not register.

What is this error mean? i hv install my system in few computer all work fine!
 
It means that you have referenced a COM class in your project that is not installed on the target machine. If you have the legal right to distribute this COM component then you need to do so with your installer. If you don't then either the user must already have the component installed or they cannot use your application. What ActiveX components have you used or non-.NET libraries have you referenced?
 
*nod* there must be some object in your system that isnt part of the .NET framework. There must be a reference to some COM component in your system. Like if you used an office component or and old VB6 component or something like that.
 
yes i'm using Interop.ADOX and also Interop.Outlook (Outlook Express) in my system. But i try to know why for some computer can run my system and run without problem but for some cannot.

i realized that all window xp can run with my system but not for window 98.
Message:
COM object with CLSID {xxxx-xxxx-xx....} is either not valid or not register.

Above msg appear when i try to run my system in window 98. This that because of the platform or because of the dll?
 
Probably Win 98 being a bastard. I think this happens because a DLL you're using isnt registered (Huge guess). Do you package the Interop.ADOX and Interop.Outlook DLLs with your system? That could cause problems as well if they arent included because then the host PC MUST have them somewhere. Also, Is Outlook installed on all the PC's? That can also be a source of errors as well. What do you use Interop.ADOX for?
 
to create ms access. i did include the DLL in my system. when user intall the DLL will in the folder as well i think i no need to worry whether host PC hv the DLL or not. i hv use try-catch to when my system detect Outlook Express is not install so i think this also not a problem.
 
Your app will try to load the DLLs it references and fail if they are not there. If COM DLLs are not already installed on the target machine then just putting a copy in your program folder is not enough. One of the reasons that .NET is better than COM is for the very reason that you don't have to register your assemblies, but if you're using COM components then these will require registering. You can do this using your application's installer.
 
jmcilhinney said:
Your app will try to load the DLLs it references and fail if they are not there. If COM DLLs are not already installed on the target machine then just putting a copy in your program folder is not enough. One of the reasons that .NET is better than COM is for the very reason that you don't have to register your assemblies, but if you're using COM components then these will require registering. You can do this using your application's installer.

jmcilhinney what you mean by "You can do this using your application's installer". Do you mean my program can be solve? Can you teach me how to do that?
 
Back
Top