我们有一台特定的Vista x64机器,在运行我们的C# WinForms应用程序时,显示以下错误:
System.EntryPointNotFoundException: 找不到名为'TaskDialogIndirect'的入口点, 在DLL“ComCtl32”中。
这段代码在其他Vista机器上运行良好。由于某种原因,这台特定的Vista机器总是抛出此异常。
我们该如何解决这个问题?
我们有一台特定的Vista x64机器,在运行我们的C# WinForms应用程序时,显示以下错误:
System.EntryPointNotFoundException: 找不到名为'TaskDialogIndirect'的入口点, 在DLL“ComCtl32”中。
这段代码在其他Vista机器上运行良好。由于某种原因,这台特定的Vista机器总是抛出此异常。
我们该如何解决这个问题?
我在使用Naughter的免费XTaskDialog API时遇到了问题,因为要借助模拟实现在Windows XP机器上实现降级功能,从而使此对话框实现更加有用。 :)
在我的情况下,这是一个激活上下文问题,正如这篇博客文章所提到的。
或者,如果博客文章有一天在网络上消失了(适用于Visual Studio):
第4步要插入的代码:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssembly>
</dependency>
我建议比较工作和不工作的Vista机器上comctl32.dll的版本 - 即使它们报告相同的版本,也要比较它们的校验和。
其他需要检查的事项:
阅读这篇article关于激活上下文也是值得一试的。