0

I just upgraded a product from C++Builder 2007 to RAD Studio XE, and at the same time changed some third party component.

Now, when I run my product on Vista, I get the following error:


Project1.exe - Entry Point Not Found

The procedure entry point FlatSB_GetScrollInfo could not be located in the dynamic link library COMCTL32.DLL.

OK


When I open COMCTL32.DLL in a hex editor, I do find the FlatSB_GetScrollInfo name. I only find COMCTL32.DLL files under the \Windows\ folder, no local installs.

Anybody know what could be causing this?

David Heffernan
  • 601,492
  • 42
  • 1,072
  • 1,490
Sharkie
  • 409
  • 4
  • 10

1 Answers1

1

The flat scroll bar functions are not implemented in v6 comctl32 which you are presumably linking against.

Flat scroll bar functions are implemented in Comctl32.dll versions 4.71 through 5.82. Comctl32.dll versions 6.00 and higher do not support flat scroll bars.

The VCL code won't be using these functions so I think you need to locate the 3rd party component that is doing so. I guess that the move to XE introduced the comctl32 v6 manifest and brought this issue to light.

On the other hand, you could always remove the v6 manifest which will get over this particular issue but your app will use the classic theme and look like your are running Windows 2000 again!

David Heffernan
  • 601,492
  • 42
  • 1,072
  • 1,490
  • Thanks David. The odd thing is, the PC it is failing on has COMCTL32.dll version 5.82.6000.16386 and the function name exists in the file. The manifest indeed does require common controls version 6.0.0.0, but so does the version built with BCB 2007, which works fine. I'm puzzled. – Sharkie Jun 18 '11 at 18:10
  • @Brian You must understand that since XP all systems ship with two versions of comctl32 side by side, v5 and v6. I'm sure if you look at the comctl32 version actually loaded in the BCB2007 program (e.g. Process Explorer) you'll see that it's using v5. – David Heffernan Jun 18 '11 at 18:14
  • does this answer your question? – David Heffernan Jun 18 '11 at 19:43
  • More or less :) It helped me in the right direction, so thank you very much David. It was a problem with my manifest. I need to replace the automatically generated manifest with one that adds more dependencies, because I use registration free COM objects. After I grabbed the original, auto-generated manifest, added my own stuff to that, disabled "Enable theme support" on the project and then added my own manifest in a resource file - it magically worked. – Sharkie Jun 18 '11 at 20:15
  • @Brian That sounds reasonable although I'd recommend that you hunt down the flat scroll bars and replace them with something more modern and then allow yourself to move to v6 comctl and a more modern look. – David Heffernan Jun 18 '11 at 20:20