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