相关疑难解决方法(0)

Marshal.AllocHGlobal VS Marshal.AllocCoTaskMem,Marshal.SizeOf VS sizeof()

我有以下结构:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct WAVEHDR
{
    internal IntPtr lpData;   // pointer to locked data buffer
    internal uint dwBufferLength; // length of data buffer
    internal uint dwBytesRecorded; // used for input only
    internal IntPtr dwUser;   // for client's use
    internal uint dwFlags;   // assorted flags (see defines)
    internal uint dwLoops;   // loop control counter
    internal IntPtr lpNext;  // reserved for driver
    internal IntPtr reserved;  // reserved for driver
}
Run Code Online (Sandbox Code Playgroud)

我需要分配非托管内存来存储上面结构的实例.指向此结构的指针将传递给waveOut win32 api函数(waveOutPrepareHeader,waveOutWrite,waveOutUnprepareHeader).

  1. 我应该使用Marshal.AllocHGlobal()Marshal.AllocCoTaskMem()?有什么不同?
  2. 我应该通过 …

.net c# winapi memory-management unmanaged

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

memory-management ×1

unmanaged ×1

winapi ×1