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
.
我的 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
.