commonDialog引发AccessViolationException的一种原因

来源:互联网 发布:c语言小写字母转大写 编辑:程序博客网 时间:2024/05/16 14:37

问题很简单,可是找到问题却不是那么容易。这只是我这个问题引起的原因,并不是通解。期间参考了大量国外的讨论。国外很多人遇到这个问题,原因有:

1.使用了非托管代码或模块;

2.试图访问的文件不存在;

3.没有权限(主要是windows vista以后版本);

4.编译优化造成的错误,关闭相关优化选项;

5.控件数量过多(主要是:Error creating window handle);

 

原来前几天改了一下manifest里面的属性,在里面添加了:

<dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" />
    </dependentAssembly>
  </dependency>

这段代码的意思是允许通用控件由系统改变样式(当然,这其实也是个权限问题)。把这段代码去掉就没有问题了。

原创粉丝点击