我将尝试将Texture2D(字节数组)中的原始纹理数据传递给非托管C++代码。在C#代码中,数组长度约为1.5kk,但是在C++中,“sizeof”始终返回8。
C#本地方法声明:
[DllImport("LibName", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr ProcessData(byte[] data);
C++:
extern "C" {
__declspec(dllexport) void ProcessData(uint8_t *data) {
//sizeof(data) is always 8
}
}
我做错了什么?有没有一种在C++代码中传递数组而无需额外内存分配的方法?
sizeof(data)
告诉你指针的大小,但你无法从指针中推断出所指向的数组的大小,你需要单独传递它。 - UnholySheep