Q224382: BUG: Profiler Enabled Only Under Administrator Account in WinNT
Article: Q224382
Product(s): Microsoft C Compiler
Version(s): 6.0
Operating System(s):
Keyword(s): kbPerformanceTool kbVC600bug kbNoUpdate
Last Modified: 12-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- The Source Profiler, included with:
- Microsoft Visual C++, 32-bit Enterprise Edition, version 6.0
- Microsoft Visual C++, 32-bit Professional Edition, version 6.0
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
When using Visual C++ in a Windows NT account other than the one Visual C++ was
installed under, the Profile menu option under the Build menu is disabled.
CAUSE
=====
When Visual C++ is installed, a ProfilerInstalled registry entry is created and
set to true. The Visual C++ installation program places this key under
HKEY_CURRENT_USER. HKEY_CURRENT_USER is specific only to the current user, which
means the registry entry is not being set for other Windows NT accounts.
In earlier versions of Visual C++, installing the profiler is optional.
RESOLUTION
==========
For all accounts to share the ProfilerInstalled registry key, it should be
placed into HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER. Add the following
REG_DWORD value to HKEY_LOCAL_MACHINE under the following path:
Software\Microsoft\DevStudio\6.0\General\ProfilerInstalled = 0x1
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
MORE INFORMATION
================
To easily update the registry:
1. Create a text file on the desktop with any name and a .reg extension.
2. Enter the lines of text below exactly as they appear and include a blank line
at the bottom of the file.
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\DevStudio\6.0\General]
"ProfilerInstalled"=dword:1
3. Save the file and then double-click the file to merge the entries into the
registry.
To verify the values have been entered correctly into the registry, you can run
REGEDIT by clicking Run from the Start menu.
In addition, you can also compile and run the following Win32 console
application:
#include "windows.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
HKEY hKey;
DWORD dwValue = 1;
int nRet = 0;
if ( !SUCCEEDED(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\DevStudio\\6.0\\General",
0, KEY_ALL_ACCESS, &hKey)))
{
printf("Error: Cannot open key\n");
return -1;
}
if ( !SUCCEEDED(::RegSetValueEx(hKey, "ProfilerInstalled",
0, REG_DWORD, (unsigned char *)&dwValue, 4)))
{
printf("Error: Cannot set value\n");
nRet = -1;
}
::RegCloseKey(hKey);
return nRet;
}
REFERENCES
==========
(c) Microsoft Corporation 1999, All Rights Reserved.
Contributions by Kelly Marie Ward, Microsoft Corporation
Additional query words:
======================================================================
Keywords : kbPerformanceTool kbVC600bug kbNoUpdate
Technology : kbVCsearch kbAudDeveloper kbSProfilerSearch kbVC32bitSearch kbSProfiler100
Version : :6.0
Issue type : kbbug
Solution Type : kbpending
=============================================================================
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 1986-2002.