VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 122|回复: 10

winhttp里面的send怎么发生string内容的数据

[复制链接]
67_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-17 19:51:08 | 显示全部楼层 |阅读模式
视频里面的类型转化必须要用mfc的东西。我没有用过mfc
QQ图片20200217195008.png




上一篇:《实用C++》第30课 课后作业
下一篇:winhttp的send问题
01_avatar_middle
最佳答案
32 
online_admins 发表于 2020-2-17 20:02:00 | 显示全部楼层
如果当前工程编码是 Unicode 宽字节的话,默认 CString 内部就是 wchar_t 宽字节的字符串;而 C++ STL 中的 string 默认是 char 窄字节的字符串。所以这块要进行宽窄字节的转换!
01_avatar_middle
最佳答案
32 
online_admins 发表于 2020-2-17 20:12:14 | 显示全部楼层
写了个小函数,楼主可以试用下:

  1. std::string MFCString_To_CppString(CString str)
  2. {
  3.         if (str.GetLength() <= 0) std::string("");

  4.         std::string str_ret;

  5. #ifdef UNICODE
  6.         int gbk_len = WideCharToMultiByte(CP_ACP, 0, (LPCTSTR)str, str.GetLength(), NULL, 0, NULL, NULL);
  7.         if (gbk_len <= 0) return std::string("");

  8.         char* lpsz_m = nullptr;
  9.         lpsz_m = new char[gbk_len + 2];
  10.         if (!lpsz_m) return std::string("");
  11.         memset(lpsz_m, 0, (gbk_len + 2)*sizeof(char));

  12.         int nRtn = WideCharToMultiByte(CP_ACP, 0, (LPCTSTR)str, str.GetLength(), lpsz_m, gbk_len, NULL, NULL);
  13.         if (nRtn != gbk_len)
  14.         {
  15.                 delete[] lpsz_m;
  16.                 return std::string("");
  17.         }

  18.         str_ret = lpsz_m;
  19.         delete[] lpsz_m;
  20. #else
  21.         str_ret = (LPCTSTR)str;
  22. #endif

  23.         return str_ret;
  24. }
复制代码

点评

老大真是太热心了!  发表于 2020-2-17 21:12

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
77_avatar_small Health + 2 + 2 很给力!

查看全部评分

67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-17 20:18:42 | 显示全部楼层
哇太给力了。我去试一试
67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-17 20:19:56 | 显示全部楼层
但是我没有用过mfc好像用不了cstring
67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-17 20:24:23 | 显示全部楼层
file:///C:/Users/Administrator/Desktop/123.png
67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-17 20:27:35 | 显示全部楼层
pHttpReq->Send((wchar_t)"{" + " agent" + ":{" + " name" + " :" + "Minecraft" + ", " + " version" + " : 1}, " + " username" + " : " + 账号 + ", " + " password" + " :" + 密码 + " }");
错误:
“+”: 不能添加两个指针
表达式必须具有整数或未区分范围的枚举类型
77_avatar_middle
最佳答案
21 
online_vip 发表于 2020-2-17 21:11:11 | 显示全部楼层
3215656174 发表于 2020-2-17 20:27
pHttpReq->Send((wchar_t)"{" + " agent" + ":{" + " name" + " :" + "Minecraft" + ", " + " version" + " ...

字符串没有这么加的啊,只能一次加一个常量字符串,类似:
string str;
str += "123";
str += "456";
67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-18 10:36:45 | 显示全部楼层
{"agent":{"name":"Minecraft","version":1},"username":邮箱,"password":密码}这种信息应该怎么send提交数据
67_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-18 10:46:49 | 显示全部楼层
我没有用mfc所以没有COleVariant怎么办我可以用什么方法转化吗
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-4-1 19:19

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表