c++的bool类型与c#的bool类型

本来有点懒,不过还是记一下。

使用HPSocket项目碰到C#调用结果不符合预期,也提了这个问题

最终发现是c++中的bool类型为1 byte,而c#中采用4 bytes导致,需要在DllImport时,使用

[DllImport(HPSOCKET_DLL_PATH, CharSet = CharSet.Ansi, SetLastError = true)]
[return:MarshalAs(UnmanagedType.I1)]
public static extern bool HP_Server_HasStarted(IntPtr pServer);

额外处理返回值。

原文地址:https://www.cnblogs.com/mosakashaka/p/12608802.html