The dreded EnableVisualStyles and External exception error

  • Thread starter Thread starter Joe
  • Start date Start date
J

Joe

We really want to use the visual styles in our app but get that stupid
external exception error at the weirdest times.

I call it like this:

static void Main()
{
Application.EnableVisualStyles();
Application.DoEvents();

Application.Run(new MyForm() );
}

The problem seems to occur sometimes when DoEvents is called again within
the application but not actually at the call. The exception is throw during
other code execution. Although, if I comment out DoEvents() it will work in
most cases.

I need to call DoEvents in some cases so I can't completely remove it.

Any suggestions?

-Joe
 
Hi Joe

You can enable visual styles by including a manifest for your EXE. Create a
file called YourApp.exe.manifest containing the following (replace 'YourApp'
as appropriate)


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="YourApp.exe"
type="win32"
/>
<description>YourApp Description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Then, put the file in the same directory as your executable.

HTH

Charles
 
Thanks that works.

Charles Law said:
Hi Joe

You can enable visual styles by including a manifest for your EXE. Create
a file called YourApp.exe.manifest containing the following (replace
'YourApp' as appropriate)


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="YourApp.exe"
type="win32"
/>
<description>YourApp Description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Then, put the file in the same directory as your executable.

HTH

Charles
 
Back
Top