views:

39

answers:

2

Hi,

I am getting this error when I am trying to depoly my application on a target machine.

I googled and found that some of the dll's need to be registered (that are used in my application)

So, I copied the dll's to System32 and did regsvr32

I then got this error

Interop.ShockwaveFlashObject.dll was loaded bt DllRegisterServer entry point was not found. The file cannot be registered

And one strange thing is that, the application doesn't work on only one machine. I tested on 10 different machines and everything worked well. It did not work on only one machine.

Can someone please help me on this?

A: 

That interop dll is not a COM dll which needs to be registered with regsvr32.dll, it is an interop dll which manages the link between the COM stuff and the managed stuff, I believe.

Probably you need to register some other dll (ie any & all COM dlls, probably ShockwaveFlashObject.dll) or you have some other missing dependency. what is different about the machine on which it doesn't work compared to the machines which it does work on? Are all dependencies installed on all machines (like flash?) Are the os's different? Maybe some newer os's don't have all of the old dependencies that older machines have.

Sam Holder
+2  A: 

The Interop dll doesn't need to be registered it effectively contains a pointer to an existing COM registered object.

If it follows the usual naming convention it looks like ShockwaveFlashObject.dll is not registered on the machine (this would be the DLL you should run regsvr32 against). Presumably you need to install Shockwave/Flash (and/or check the version installed is the right one if you believe it's already on the box).

Paolo
I really cannot understand. I used the Setup Project to build the setup for my application. It found Flash10a.ocx, AxInterop.ShockwaveFlashObjects.dll and Interop.ShockwaveFlashObjects.dll as the dependancy. And ideally, the setup should now also registre these for me. Won't it?I tried installing the Flash Player again, but I am getting same results over and over again!
James
have you registered Flash10a.ocx with regsvr32.dll?
Sam Holder
@SamHolder yes! I am doing it within the application itself. And hence, on all the machines it got registered and my application runs fine. Its only on one machine that I am getting the problem
James
@Jay - Yes the setup project should register these things, however if ShockwaveFlashObjects.dll has a dependency itself on something else (likely) I don't think it will include that. Download DependencyWalker (http://www.dependencywalker.com/) and see whether that shockwave DLL has all its dependencies satisfied on the target machine.
Paolo
Oh! I also had to register Flash10e.ocx!and it now works fine. Setup didnt detect this. Thanks Paolo!
James
No probs, do feel free to mark the answer as accepted in that case ;)
Paolo