将指针传递给 DLL 提供的 API

Passing pointers to APIs provided by DLL

做完之后我开始怀疑了

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

所以我怀疑如何为 DLL 中存在的函数分配内存并从应用程序中调用。它应该出现在调用进程内存中space。 我说的对吗?

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

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

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