1

我需要有关我的 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# 应用程序中使用这个库。你能告诉我如何动态分配内存的例子吗?

4

1 回答 1

2

您需要链接到相应的库。如果您查看MSDN 页面,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.

于 2015-01-13T10:33:23.580 回答