Wednesday, 13 October 2010

AxVLCPlugin2, Visual Basic 2008 and Windows 7 64bit - clr20r3 and REGDB_E_CLASSNOTREG

I've been writing an application to monitor multiple streams in VB 2008 and I started using the AxVLCPlugin2 which comes with VLC.

It is a nice plugin and apart from a few problems (it will not go fullsceen in version 1.1.4 for example) works fine for any stream that VLC supports.

I do most of my work on a 32bit XP box at work, but sometimes I like to work on projects at home using my 64bit Win7 PC.

For most projects this works fine, but on this one every time I started the application it would crash telling me that an error with an "EvenType: clr20r3" has occurred. It also gives a lot of information about the crash but nothing useful to point to the source of the error.

Assuming that the problem was that the application could not find VLC or that the AxVLCPlugin2 was not recognised, I fired up Visual Studio, cleaned up the project and tried to recompile - at which point VS proclaimed that "Class not registered (Exception from HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))".

No matter how many times I removed the reference an added it again, the error remained the same.

The solution was quite simple though.

Go to the "Project properties -> Compile" and set the platform to "x86" instead of "Any CPU". This allowed the application to successfully compile and run on the 64bit Win7 pc, without breaking it for the 32bit.


If "x86" does not appear in the combobox, open the configuration manager (Build -> Configuration Manager).

In the Configuration Manager dialogue, select "New" from the "Active Solution Platform" combobox.


In the new dialogue, select "x86" and "Copy Setting from Any CPU" and leave the checkbox ticked.


Keep in mind that this will create a new directory under the "<project>/bin/" folder of your project called "x86" which will contain new debug and release subdirectories. So make sure that if you have any shortcuts to your executables pointing to the old "<project>/bin/release" or "<project>/bin/debug" folders they are updated accordingly.

2 comments:

  1. Hi, Alex!
    Many many thanks for nice & useful post.
    This def option helps work at the applications under described conditions for winsock.dll too.
    Best Wishes.
    Gennady.

    ReplyDelete
  2. Thanks very much Alex,
    Simple solution for a problem i have spend several hours on.
    Keep up the good work,
    Vincent

    ReplyDelete