想知道较低版本的Visual Studio是否可以使用使用较高版本的Visual Studio构建的dll

Wondering if the lower version of visual studio can use the dll built using higher version of visual studio?

本文关键字:Studio Visual 版本 构建 dll 可以使 是否 想知道 高版本      更新时间:2023-10-16

在计算机上安装两个版本的Visual Studio。我想知道较低版本的Visual Studio是否可以使用使用较高版本的Visual Studio构建的dll?

通常,不能在一个程序中混合使用不同版本的 CRT 编译的 dll。下面是指向 MSDN 文档的链接。

正如其他人提到的,如果您保持界面简单,它可以工作。不要释放链接到另一个版本的 CRT 的 DLL 中分配的内存,不要传递 FILE* 和类似内容。不幸的是,很难确定你能做什么,不能做什么。

这取决于 DLL。例如,如果使用简单的参数类型和相同的调用约定创建 Win32 DLL,则该 DLL 将起作用。

只有当你

将自己限制在所谓的 C 风格接口 - 只有基元类型时,分配任何资源的代码必须释放它,并且还必须抽象到非内存资源,如文件句柄等。除非在某些极其严格的条件下,否则不能发送C++类或对象,也不能跨 DLL 边界释放内存。