views:

18

answers:

1

Hello,

I have to debug a big application done in VB6. The application is comprised of a main EXE, some ActiveX projects and other ActiveX control projects.

The problem I'm facing is that I cannot hit breakpoints inside some ActiveX projects. Looks like the application is using the OCX outside the debugger because the application runs but the breakpoints are simply not there.

The main EXE has a reference set to the OCX generated by that project. If I remove that reference I get a compilation error about unknown classes.

Any help will be great.

+3  A: 

Make sure your ActiveX project is using binary compatibility (on the Component tab of the Project Properties). If it isn't, your exe project that references the ActiveX control is pointing to a different class id than your ActiveX project and you won't be able to debug.

C-Pound Guru
Can you explain why this is needed? I do not catch it. If the ActiveX is inside the project I expect that the EXE project uses the ActiveX project.
SoMoS
Of course, it worked.
SoMoS
@SoMos It's needed because your project is no longer referencing the ActiveX inside the project, because you've allowed the GUID identifiers to change. VB6 and COM now think that the built OCX is completely separate from the source code project. Every time you build it, it changes the identifiers. +1 C-Pound Guru
MarkJ