Unity C#和C 结构映射
Unity c# and c++ struct Mapping
我使用的是unity 2017,在我的督导中,我使用c dll文件来定义我的用户信息结构,例如:
c++ :
struct UserInfo
{
int userID;
int loginID;
char username[32];
char signature[128];
long long goldNum;
int deskID;
}
当我在c#中定义一个结构时:
C#:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct UserInfo
{
System.Int32 userID;
System.Int32 loginID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string username;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string signature;
public System.Int64 goldNum;
System.Int32 deskID;
}
最后,我无法获得正确的用户名字符串,它是空的。
wnhen我将"公共字符串用户名"更改为" public byte []用户名,它正常工作。
如何获得字符串数据,而不能获取字节[]数据,因为我需要将字符串更改为lua文件?
感谢您的帮助!
免责声明:我在C 和C#之间不经历了经验。
也就是说,我相信该系统不直接知道如何将字符阵列转换为字符串。
但是,您可以使用此方法将至少C#char数组转换为C#字符串。也许它也可以在语言之间起作用。
char[] charArray = {'1', '2', '3'};
string s = new string(charArray);
所以也许尝试将您的C char数组存储在C#char数组中,然后将其转换为字符串。
让我知道是否有效: - (
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- C++匿名结构作为std::映射值
- 添加静态constexpr成员是否会更改结构/类的内存映射
- C++:映射结构中的结构指针
- 无法添加多个键以映射将结构作为键
- 如何在 c++ 中创建结构向量的映射
- c++ 嵌套结构映射找不到成员
- 带有结构映射的 C++ 向量?
- Unity C#和C 结构映射
- 使用 std::vector 将C++结构映射到 C#
- C++stl::使用结构映射find
- 如何在C++中把结构映射到字符正确的方法
- 更好的数据结构映射函数与多个参数(键)
- 将PolarSSL x509_cert结构映射到pkcs# 11 X.509对象
- 为什么我的JNA结构映射产生奇怪的字段值
- 在函数中填充结构映射的最好方法是什么?
- 如何解决声明结构映射时的编译错误
- 数据结构-C++映射:需要智能算法
- 使用字符串键初始化结构映射