作者ireullin (raison detre)
看板C_Sharp
標題[問題] c# socket 一問
時間Mon Sep 8 21:14:35 2008
請問各位高手
小弟我使用c#寫了一個client程式
使用socket去跟c++ 的server作溝通
溝通的內容是一個struct
c# 中 struct的格式
[Serializable()]
public struct LOGIN_PERMISSION_DATA
{
public short version;
public byte[18] username;
public byte[15] password;
public int idx;
public uint checkkey;
public byte client_id;
public byte permission;
}
c++中 struct的格式
typedef struct tagLoginPermission
{
short version;
char username[18];
char password[15];
int idx;
unsigned int checkkey;
iUInt8 client_id;
iUInt8 permission;
} LOGIN_PERMISSION_DATA;
可是我在c++始終無法解譯我使用socket send過去的data
我將這個struct 在c# 轉為 byte[] 的時候 長度是317
可是我使用c++寫一個簡單的範例
我在裡頭使用 sizeof(LOGIN_PERMISSION_DATA) 的時候 大小只有 48(WORD)
請問為何會如此呢
我是否有哪裡疏忽掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.110.100
推 megaman1206:難道是指標? 09/08 21:53
推 tomex:C#轉struct至win32,需要作很多size屬性宣告,不是那麼簡單 09/10 13:52
推 tomex:網路上有文章在講c# to c++結構對比上的宣告方式,去查看看 09/10 13:52