DOCUMENT:Q170978 17-JUL-2001 [visualc] TITLE :PRB: MFC Browser Library (MFC.BSC) Can't Find MFC Source Files PRODUCT :Microsoft C Compiler PROD/VER:winnt:5.0,6.0 OPER/SYS: KEYWORDS:kbMFC kbVC500 kbVC600 kbVS97 kbVS600 kbGrpDSMFCATL ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual C++, 32-bit Enterprise Edition, versions 5.0, 6.0 - Microsoft Visual C++, 32-bit Professional Edition, versions 5.0, 6.0 - Microsoft Visual C++, 32-bit Learning Edition, version 6.0 ------------------------------------------------------------------------------- SYMPTOMS ======== The MFC browser library (MFC.BSC) that ships with Visual C++ has problems finding the target source code files, requiring you to enter the directory path. Visual C++ may also load the wrong version of source files, depending on where different versions of Visual C++ are loaded. For example, if the Visual C++ 4.0 source files are loaded on E: drive, they will be found instead of the Visual C++ 5.0 files. CAUSE ===== These problems are caused by different directory paths embedded in the MFC.BSC file and the actual location of these files on your hard disk. For the browser to work properly, these directory paths must be the same. The directory path that the MFC browse library was created on (E:\msdev\mfc\src) is different from the default installation path for the MFC source code (C:\Program Files\DevStudio\Vc\mfc\src). The browser can find the files if the drive letter is different. However, it fails to find the target files and consequently prompts for the target directory if the paths are different. RESOLUTION ========== You can work around this by rebuilding the MFC browser library (MFC.BSC). Steps to Rebuild the MFC Browser Library ---------------------------------------- 1. Verify that you have around 400 megabytes for Visual C++ 5.0 or 500 megabytes for Visual C++ 6.0 of free disk space on the drive where Visual C++ is installed. This much space is required to build the browse information. 358 megabytes for Visual C++ 5.0 or 459 megabytes for Visual C++ 6.0 that are used by .SBR files can be freed once the browser database has been built. Temporary files require the additional space. Temporary files are automatically deleted. 2. From a Command Prompt, run the Vcvars32.Bat, which should be in the :\vc\bin, to set the proper environment variables. Change to the :\Vc\Mfc\Src directory, and build the browse information by running the nmake on the makefile: nmake browseonly=1 no_pch=1 no_pdb=1 dll=2 This creates NafxeWD.bsc file and a subdirectory called $DLLD.W with .SBR files. 3. Provided you do not plan to rebuild the browse database frequently, remove all files in the $DLLD.W directory, and then remove the directory itself. The intermediate .SBR files occupy roughly 358 megabytes for Visual C++ 5.0 or 459 megabytes for Visual C++ 6.0 of disk space and are not required to use the browser. 4. If you want to, you can change the new browse file from NafxeWD.BSC to MFC.BSC. To use the browser file, start Visual C++. On the File menu, click Open, and choose the .BSC file that you just created. On the Tools menu, click Source Browser. The Browser window appears, and then you can look up any of the MFC functions or data variables. STATUS ====== This behavior is by design. REFERENCES ========== For additional information regarding the building of the MFC.BSC library, please see the following articles in the Microsoft Knowledge Base: Q98656INFO: Creating a Browser Library for the Foundation Classes Q138326 HOWTO: Create a Browser Library for the Common Control Classes (c) Microsoft Corporation 1997, All Rights Reserved. Contributions by Mike Francis, Microsoft Corporation Additional query words: mfc browser mfc.bsc ====================================================================== Keywords : kbMFC kbVC500 kbVC600 kbVS97 kbVS600 kbGrpDSMFCATL Technology : kbVCsearch kbAudDeveloper kbVC500 kbVC600 kbVC32bitSearch kbVC500Search Version : winnt:5.0,6.0 Issue type : kbprb ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.