将指针传递给DLL提供的API

时间:2015-02-12 06:30:47

标签: dll operating-system shared-memory

这样做后我开始怀疑。

我创建了一个DLL,其中API接受来自应用程序的某些值的指针。我能够访问DLL中的那些指针。

所以我怀疑如何为DLL中存在的函数分配内存并从应用程序调用。它应该在调用proccess内存空间时发生。 我是对的吗?

1 个答案:

答案 0 :(得分:1)

你是对的:DLL和应用程序共享相同的地址空间,因此在系统级别没有分配内存使用的问题。

但是你必须小心释放内存,这是由另一个模块的代码分配的。它只有在以下情况下才能正常工作:

  1. 两个模块都构建在同一平台上(例如Visual C ++)。
  2. 两个模块都使用第三个共享DLL中的相同堆管理器(例如msvcrt)。