c++:多字节转宽字符(vs15+python2.7.11 32bit)

两种方式:

1、window平台上,使用方法–MultiByteToWideChar:

    int nWLen = ::MultiByteToWideChar(CP_ACP, NULL, p_obj.c_str(), int(p_obj.size()), NULL, 0);
    wchar_t* pWszString = new wchar_t[nWLen + 1];//一定要加1,不然会出现尾巴 
    ::MultiByteToWideChar(CP_ACP, NULL, p_obj.c_str(), int(p_obj.size()), pWszString, nWLen);
    pWszString[nWLen] = '\0';

2、通用版(windows&Unix),使用方法–mbstowcs:

    setlocale(LC_CTYPE, "chs");//linux下,这句代码请改为setlocale(LC_CTYPE, "en_US.utf8");
    int nWLen = std::mbstowcs(NULL, p_obj.data(), NULL);
    wchar_t *pWstr = new wchar_t[nWLen + 1];
    int nLen = std::mbstowcs(pWstr, p_obj.data(), p_obj.size());

注意:
1、我的环境是python2.7.11 32bit+vs15
2、C++调用python脚本程序,设置py程序路径(PyRun_SimpleString(“sys.path.append(‘./’)”)),建议设置为绝对路径,这里我设置了./当前路径,这个路径指的是c++编译后的bin目录即可执行程序的那个路径,同时这个时候C++可执行程序调用py程序,c++可执行程序一定要在bin目录下执行

ps:windows多版本pip切换窍门:
1、cd d:\pythonXX\Scripts
2、easy_install.exe pip
3、python -m pip install -U pip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值