如何用SOCKET发送带有CString类型的结构体

zyj001991 2011-08-07 04:16:37
请问如何用SOCKET发送带有CString类型的结构体;
结构体如下:
struct FileStruct
{
CString FileName;
ULONGLONG Filelength;
CString PathName;
CString FileSize;
char FilePath[200];
};
用send(s, (LPTSTR)(LPCTSTR)&filestruct, sizeof(filestruct),0)
或者
send(s, (char*)&filestruct, sizeof(filestruct),0)
客户端接受完之后会有内存报错,
请问如何解决;
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyj001991 2011-08-07
  • 打赏
  • 举报
回复
解决了,还是转换为 char 类型的;
如下:
struct FileStruct
{
char FileName[100];
ULONGLONG Filelength;
char PathName[100];
char FileSize[100];
char FilePath[200];
};

谢谢各位..
zyj001991 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pclion 的回复:]
自定义序列化吧。不必修改结构。
[/Quote]
请问如何修改序列化,能举个例子吗?
pclion 2011-08-07
  • 打赏
  • 举报
回复
自定义序列化吧。不必修改结构。
FoxBryant 2011-08-07
  • 打赏
  • 举报
回复
模块内部用CString比较方便,但是多模块的话,还是用原始类型安全。
之前做过DLL导出接口参数用CString的,结果就出现莫名奇妙的问题,最后还是改用数组了。
zyj001991 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 visualeleven 的回复:]
别用CString了,改用TCHAR[]数组吧~
[/Quote]
请问除了TCHAR[]还有没有直接就是CString发送的?
zyj001991 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]
用数组来替换,可以开辟比较大的数组,或者用一个DWORD来表示数组长度等
[/Quote]
请问我这个结构体应该如何修改?
Eleven 2011-08-07
  • 打赏
  • 举报
回复
别用CString了,改用TCHAR[]数组吧~
oyljerry 2011-08-07
  • 打赏
  • 举报
回复
用数组来替换,可以开辟比较大的数组,或者用一个DWORD来表示数组长度等

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧