MASM DLL内存分配(MASM dll memory allocation)

2019-10-21 14:23发布

我需要我的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#应用程序这个库。 你能告诉我的例子,我怎么能动态分配内存?

Answer 1:

你需要对相应的库链接。 如果你看一下在MSDN页面HeapAlloc你会看到它位于kernel32.dll

假设你正在使用MASM32应该有一个kernel32.inc (的程序原型)和kernel32.lib (用于连接)附带的安装MASM32。 所以,你需要以下几行添加到您的汇编文件:

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

如果你没有一个kernel32.lib文件时,它变得更复杂一些,但它仍然采用可行LoadLibrary来加载kernel32.dll ,然后得到的地址HeapAlloc与功能GetProcAddress



文章来源: MASM dll memory allocation