ATL Server with precompiled headers (VS 2005 beta 2)

Using the wizard to create the basic default ATL server application, I am able to build the solution and it works fine. 

Now if I set a breakpoint in the isapi cpp file at the line:

return theExtension.HttpExtensionProc(lpECB);

and if I "go to definition" on theExtension.HttpExtensionProc (it opens atlisapi.h) and set a few more breakpoints in the  HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpECB) member function...

On debugging (using the VS ide debugger), I reach the first breakpoint but as soon as I try to step into call, the debugger complains that the atlisapi.h source is different to when the module was built!  Pressing ok allows me step into the file but any breakpoints set in this file are now hollow and I have to manually set them again! 

If I turn off precompiled headers, everything works as it should.  I think precompiled headers worked fine in vs2003.net with ATL server. 

Can anyone confirm this behavior


(Using win xp sp2 / iis 5.1)


Answer this question

ATL Server with precompiled headers (VS 2005 beta 2)

  • Lucy Phelan

    Unfortunately, as I bought beta 2 through the beta experience, I don't have access to the lates RC builds to examine this issue further.  For now, I guess I will have to make do with the workaround which is to include the full path in the #include directive.

    Thanks for the responses.

  • TechArtists

    Running a search, I only have two atlisapi.h files on my hard drive (for CE and the other for plain windows), both from VS 2005 beta 2.  Only the Visual Studio 8 directories are present in my settings.  Yes indeed, the file on which I set my breakpoints is the same one that opens during debugging (note, it only opens in debugging after it complains that the file is different and it asks if I am sure I want to open it).   When I turn off precompiled headers it all works and the file opens without complaining, with my breakpoints intact.  If I include atlisapi.h with a full path #include "C:\program files\...atlisapi.h", it also works, precompiled headers enabled or not. 

    Somehow, with precompiled headers enabled, and with #include <atlisapi.h>, the compiler is getting confused. 

    Is anyone able to reproduce this problem


  • Mohanad Ahmed

    Could you generate a preprocessed version of the file you are using and see which header is exactly included. You can use the /P compiler option to generate such preprocessed versions.

    Thanks,
      Ayman Shoukry
      VC++ Team

  • Angel Kafazov

    Using the /P, I have generated the preprocessed files as requested and all references to atlisapi.h (and other header files) are correct, i.e.

    "c:\\program files\\microsoft visual studio 8\\vc\\atlmfc\\include\\atlisapi.h"


    The specific error that occurs when debugging is:

    Source file: C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\atlisapi.h
    Module: \\ \c:\Inetpub\wwwroot\fsASCore\fsASCoreIsapi.dll
    Process: [3016] inetinfo.exe

    The source file is different from when the module was built.  Would you like the debugger to use it anyway


  • Morten Brun

    Do you have more than one ATL version on your machine
    Seams that the compiler uses a different one.
    Is the file were you set the breakpoint the same that the debugger opens when you step into the procedure

  • pi.net

    Could you try the latest RC build and see if the issue still repros

    Thanks,
      Ayman Shoukry
      VC++ Team



  • ATL Server with precompiled headers (VS 2005 beta 2)