0

如果我有一个使用至少两个 dll 的应用程序,在一个 dll 中分配资源并在另一个 dll 中释放它们通常是否安全?

我正在考虑在不同的 dll 中调用 fopen 和 fclose,但我也想知道它对其他资源(内存指针、句柄等)是安全的。

我认为只要所有东西都是用相同的开关编译的,它应该可以工作。

谢谢,科里

4

2 回答 2

3

对于所有非平凡的项目来说,这是一件坏事(TM)。这在一组非常严格的条件下工作,例如 dll 的版本、线程模型、在每个和许多其他人中使用的内存分配器。最后,bug 将很难追。

于 2009-05-07T18:41:49.430 回答
0

只要您使用的是 C 运行时库的 DLL 版本(/MD 或 /MDd),那么是的,它是安全的。

如果您将 CRT 静态链接到 DLL(/MT 或 /MTd)中,那么不,这不安全。

于 2009-05-07T17:42:07.997 回答