| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 892 人关注过本帖
标题:WideCharToMultiByte unsigned short 数组转 LPCWSTR 错误,与指向的类型无 ...
只看楼主 加入收藏
wang_wangrui
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-19
收藏
 问题点数:0 回复次数:4 
WideCharToMultiByte unsigned short 数组转 LPCWSTR 错误,与指向的类型无关;送种子
求助
            char MBModelName[40];
            pDeviceInfo->m_SelectedSDK = CAMERA_ENUM_PRSDK;
            memcpy( &((pDeviceInfo->SrcInfo).SelectedSrc_PRSDK), &(pGetDevList->DeviceInfo[index]), sizeof(prDeviceInfoTable) );
            WideCharToMultiByte(CP_ACP, 0, (pDeviceInfo->SrcInfo).SelectedSrc_PRSDK.ModelName, -1, MBModelName, 40-1, 0, 0);

            m_CameraList.InsertString(index, (const char *)MBModelName);
            m_CameraList.SetItemDataPtr( index, pDeviceInfo );

1>c:\documents and settings\administrator\桌面\相机开发包\49739549ps-recsdk1.1.0d\ps-recsdk 1.1.0d\sample\relctrl\comsettingdlg.cpp(107) : error C2664:

“WideCharToMultiByte”: 不能将参数 3 从“prWChar [32]”转换为“LPCWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
 定义如下
typedef unsigned short         prWChar;
prWChar              ModelName[32];  
 试了加T( )无效, 现在已经是多字节字符集,,,,
这是佳能开发包的代码,原来是vc6的 现在用的vs2005,,我已经彻底被度娘伤了

解决的奖励500部种子,绝对各个美女,我们全写字楼的珍藏
2014-11-19 14:52
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
有种何用?你给做源?

别用向上类型转换,估计过了这里过不了其它。
调节工程属性,有ansi字符集
2014-11-19 15:02
wang_wangrui
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-19
收藏
得分:0 
回复 2 楼 天使梦魔
在哪里设施ansi字符集,现在使用的是多字节字符集
2014-11-19 16:02
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
已经设置了?那函数版本是这样.
看来只能转换了,原声明是typedef const wchar_t* LPCWSTR;

char转换wchar_t就行了,不要用强制类型转换,不正确的.搜索一个就行了
两个互转的版本都有,我没试
程序代码:
char* WcharToChar(const wchar_t* wp)  
{  
    char *m_char;
    int len= WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),NULL,0,NULL,NULL);  
    m_char=new char[len+1];  
    WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),m_char,len,NULL,NULL);  
    m_char[len]='\0';  
    return m_char;  
}  
wchar_t* CharToWchar(const char* c)  
{  
   wchar_t *m_wchar;
    int len = MultiByteToWideChar(CP_ACP,0,c,strlen(c),NULL,0);  
    m_wchar=new wchar_t[len+1];  
    MultiByteToWideChar(CP_ACP,0,c,strlen(c),m_wchar,len);  
    m_wchar[len]='\0';  
    return m_wchar;  
}


2014-11-19 16:41
kevin4code
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-7
收藏
得分:0 
种子比较感兴趣。用用google呗
2014-12-08 10:17
快速回复:WideCharToMultiByte unsigned short 数组转 LPCWSTR 错误,与指向的类 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022000 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved