PDA

Click to See Complete Forum and Search --> : OCX Version Errors


jhunt
May 5th, 2002, 10:10 PM
I have 2 OCX controls a grid, and a date control, that I need to ship with an application. The two controls are compiled on a Win 2000 machine (SP2) with VB6(SP5) and run OK when installed on an NT machine(though for various reasons this may be a red herring).

But when installed on an XP machine, I get an error saying that the OCX's are an older version to those required by the application. I have rebuilt the machine that does the compile, and the XP machine is also a clean build. Examining the VB project files, the class ID seems to be correct in the source code. All the OCXs seem to be registered OK, and since the machines are clean builds, I don't think that there are any older versions hanging around.

Other OCXs in the project install and run fine, just the grid and the date control are buggy. Could this be something to do with the VB runtime files on the XP machine? Any other clues? Gurus?

Thanks in advance


Justin

Arc
May 5th, 2002, 10:37 PM
Are these 2 OCX's ones you made? Are they 3rd party or microsoft controls?


If you made them, then recompile using the Binary Compatability option in the project proerties compnent tab. If you are chaging the GUID in any way you could get errors from older programs that use the older version.

If they are microsoft controls then i don't know:(

jhunt
May 6th, 2002, 05:21 PM
sorry that wasn't clear. Yes, all the OCX controls are ones I made. They have been compiled with first with project compatibilty and then set to binary compatibility, though I haven't recompiled them under Binary compatibility.

I will try recompiling them under binary.

jhunt
May 6th, 2002, 08:48 PM
Recompiled under Binary, but still get the version error.

I have also added the OCXs to a completely separate test project, pasted them all onto a form, and compiled an exe. When I then register all the OCXs and and run the exe on a the test machine(XP) I get the same version errors, however on other machines I get a variety of errors.

I also noticed that the two offending OCXs both use microsoft OCXs internally(A maskedit control and a flex grid control), whilst the other OCX's we have written do not.

This makes me think that the problem is not with the OCXs relationship to the project files in the development environment, or the IDs they publish to registry. Rather the problem is in the dependancies of each OCX. I have tried distributing the mask edit box and flexgrid control to the target machines, but this didn't stop the error.


Can you see anything in my long winded analysis that might help me fix this?

Thanks