将字符串从C#传递到C++ DLL会得到NULL的原因可能是以下几点:
解决这个问题的方法有以下几种:
Encoding.UTF8.GetBytes()
和Encoding.UTF8.GetString()
,来确保编码一致。MarshalAs
特性来指定字符串长度,如[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
。CoTaskMemAlloc
函数来分配内存,并在使用完字符串后使用CoTaskMemFree
函数释放内存。腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云