MASM dll内存分配

时间:2015-01-12 21:34:23

标签: memory assembly masm heapalloc

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

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#应用程序中使用此库。 你能举例说明如何动态分配内存吗?

1 个答案:

答案 0 :(得分:2)

您需要链接相应的库。如果您查看the MSDN page for HeapAlloc,就会发现它位于kernel32.dll

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

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

如果您没有kernel32.lib文件,它会变得有点复杂,但使用LoadLibrary加载kernel32.dll然后获取它仍然可行HeapAlloc函数的地址GetProcAddress