Visual Studio 2015:C++ 代码分析错误 C1253,无法加载模型文件“res://mspft140.dll/300”
Posted
技术标签:
【中文标题】Visual Studio 2015:C++ 代码分析错误 C1253,无法加载模型文件“res://mspft140.dll/300”【英文标题】:Visual Studio 2015: C++ code analysis error C1253, unable to load model file 'res://mspft140.dll/300' 【发布时间】:2016-09-02 19:15:01 【问题描述】:Visual Studio 2015 Community update 3,尝试C++代码分析功能。设置如下:
solution properties > code analysis settings > [all configurations] [all platforms] : microsoft native recommended settings
project properties > code analysis > [all configurations] [all platforms] : microsoft native recommended settings
每当我运行analyze > run code analysis on solution
时,我总会得到一个c1xx : fatal error C1253: Unable to load model file 'res://mspft140.dll/300'
。这发生在每个新项目或现有项目中。 MSDN 是 not particularly helpful 关于这个的。
字符串是res protocol,所以我检查了提到的dll是否在正确的位置(实际上有两个,在c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\
和c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
),并用resedit打开它们>。两者都包含一个名为300
的XML 资源,所以我看不出VS 无法加载它的任何原因。重置设置没有帮助,完全卸载并重新安装(浪费了半天)也没有。
我在VS中运行代码分析时,也用[Path] [contains] [mspft]
过滤器运行了procmon,但文件系统结果只有SUCCESS
和FILE LOCKED WITH ONLY READERS
,即seems to be ok。
有人遇到过这个错误吗?有没有人推测它的原因?
更新:在仔细查看了使用不同过滤器的更多 procmon 捕获后,我发现cl.exe
尝试打开此注册表项值:HKCR\PROTOCOLS\Handler\res\CLSID
。显然,它会查找错误输出中提到的 res
协议的处理程序 - 并且找不到,而 res
键的许多兄弟姐妹指的是一些有效的处理程序,例如,http
键具有 @987654339 @79eac9e2-baf9-11ce-8c82-00aa004ba90b
的值。我想我现在的任务是弄清楚 res
CLSID
是什么意思。
【问题讨论】:
禁用您的反恶意软件产品并重试。 它已经被禁用,但感谢您的建议。 【参考方案1】:我对@987654321@ 协议处理程序的假设是正确的。正确的HKCR\PROTOCOLS\Handler\res\CLSID
值是3050f3bc-98b5-11cf-bb82-00aa00bdce0b
(指的是C:\Windows\System32\mshtml.dll
)。由于某种原因,我的注册表丢失了它;一旦我添加了值,代码分析就开始工作而没有错误。
我希望这对某人有所帮助,尽管我相信这个错误非常罕见。
【讨论】:
以上是关于Visual Studio 2015:C++ 代码分析错误 C1253,无法加载模型文件“res://mspft140.dll/300”的主要内容,如果未能解决你的问题,请参考以下文章
C++ Visual Studio 2015“非标准语法;使用 '&' 创建指向成员的指针”
如何在 Visual Studio 2015(用于 C++)中仅禁用 SIMD 自动矢量化优化?