【问题标题】:msvcr100 and msvcrtmsvcr100 和 msvcrt
【发布时间】:2011-09-17 16:37:27
【问题描述】:

我注意到使用旧 VC6 (msvcrt.dll) 编译的 DLL 仍然可以运行和“可调用”,即使是链接到 msvcr100.dll

非常方便,但您是否认为在一个进程中同时拥有两个运行时是个好主意?

【问题讨论】:

  • 对,这不是一个好主意。但是,如果 DLL 导出设计得当,不会暴露任何需要释放的 C++ 对象或指针,则不会立即死亡。

标签: visual-studio visual-studio-2010 dll msvcrt


【解决方案1】:

虽然在一个进程中组合多个 C 运行时并不是一个好主意,但在 Windows 上,通常没有办法绕过它。只要您不使用单独的 CRT 实现(最常见的情况:FILE*)在部件之间传递由 CRT 实现的结构,它应该可以正常工作,至少在 C 中。使用 C++,不同的异常处理会变得稍微复杂一些模型,并且由于 C++ 是 C++。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多