MASM dll内存分配

MASM dll memory allocation

我的 MASM dll 需要帮助。我正在计算数组中的元素然后我想为另一个数组分配内存,在 C 中我使用向量。 我尝试使用:

invoe GetProcessHeap
invoke HeapAlloc, eax, HEAP_NO_SERIALIZE + HEAP_ZERO_MEMORY, <size>

invoke GlobalAlloc, GMEM_ZEROINIT, <size>
mov tab, eax

但我遇到错误 undefined symbol : GetProcessHeap undefined symbol : HeapAlloc

我在 C# 应用程序中使用这个库。 你能告诉我如何动态分配内存的例子吗?

您需要 link 针对适当的库。如果您查看 the MSDN page for HeapAlloc,您会发现它位于 kernel32.dll

假设您使用的是 MASM32,您的 MASM32 安装中应该包含 kernel32.inc(用于程序原型)和 kernel32.lib(用于 linking)。因此,您需要将以下行添加到您的程序集文件中:

include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

如果你没有 kernel32.lib 文件,它会变得有点复杂,但它仍然可以通过使用 LoadLibrary 加载 kernel32.dll 然后获取HeapAlloc 函数与 GetProcAddress.