English

Bug: C++ Library Runtime error occurs when displaying data that implement IRotationRenderer

Description

ArcGIS Engine returns a C++ Library Runtime error when displaying data that implements IRotationRenderer on machines with an Intel HD 4000 or Intel Graphics Media Accelerator graphics card.

Cause

Intel Management Engine Components are a part of Intel's vPro technology. vPro is a technology platform that includes various features, such as Intel Active Management Technology (Intel AMT) and Intel Virtualization Technology (Intel VT). Intel AMT features are built into certain Intel chipset devices. Intel AMT is aimed primarily at corporate clients and enables advanced client platform management. This technology allows IT departments to manage computers from a remote console.

The Intel Management Components utility installs 'iCLS Client', which injects itself into the execution of other applications (a standard practice for security-oriented functionality). However, because iCLS Client tries to access its own copy of the system file 'msvcr90.dll', which is not statically linked, it causes a runtime error. The local copy of the runtime does not match the version of the C runtime specified in the system location in the WinSxS folder, and this triggers the runtime error message.

Workaround

There are at least three options to address this problem.

  • Uninstall Intel Management Engine Components, and update the missing Intel drivers from the Intel site. There have been approximately four updates for the HD4000 chipset over its release cycle as of July 2014, and there have been some with known problems (this is a known problem for the Microsoft Surface Pro). The newest driver can only be retrieved from from Intel directly - not from a Windows update.
  • Contact Intel for a fix for the non-statically linked runtime problem in that utility.
  • Edit the application manifest file.

    1. Right-click the project, and click Add > New Item.
    2. Select the Application Manifest File.
    3. Open the manifest file - there are a number of elements already added.
    4. Within the root 'assembly' element add the following dependencies:

    Code:
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86"
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
    </dependency>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.21022.8" processorArchitecture="x86"
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
    </dependency>

    5. Rebuild and run the application. The runtime error should no longer occur.