如何知道C ++ / CLI程序集需要哪个版本的VC ++运行时?

时间:2014-11-26 08:35:18

标签: .net visual-c++ c++-cli .net-assembly

我有一个C ++ / CLI程序集,它需要msvcr120.dll(这是VC ++可再发行组件包2013的一部分)才能运行。我通过使用工具监视进程在运行期间尝试加载的文件来发现这一点。有没有办法通过查看DLL而不运行它来获得所需的VC ++运行时版本?我尝试使用ildasm.exe来查看元数据,但没有找到相关信息。

有什么建议吗?非常感谢。

2 个答案:

答案 0 :(得分:3)

如果它是混合模块(/clr),那么C运行时将显示其加载时依赖性:

dumpbin /dependents mymodule.dll

如果它是纯模块(/clr:pure),那么对C运行时的调用将通过P / Invoke进行。您可以反汇编模块并搜索P / Invoke包装器:

ildasm /text mymodule.dll | findstr pinvokeimpl

这将列出可以动态加载以满足P / Invoke调用的模块。如果模块依赖于C运行时,您将看到它显示多次(您可以通过搜索" msvcr"或" msvcp"进一步过滤列表;如果您" 39;对Visual C ++库特别感兴趣。)

答案 1 :(得分:0)

只是为了提供替代方案,您也可以使用名为Dependency Walker的工具找到相关信息,您可以从here获取

相关问题