社区
API 调用
帖子详情
为什么VC返回的BSTR类型用PB的String类型接收后出现汉字乱码,英文正常?
yuddian
2006-08-26 01:58:55
为什么VC返回的BSTR类型用PB的String类型接收后出现汉字乱码,英文正常?
...全文
685
22
打赏
收藏
为什么VC返回的BSTR类型用PB的String类型接收后出现汉字乱码,英文正常?
为什么VC返回的BSTR类型用PB的String类型接收后出现汉字乱码,英文正常?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuddian
2006-09-09
打赏
举报
回复
up
yuddian
2006-09-08
打赏
举报
回复
ti AFIC,
这样改也不行的,如果参数只是[out],不[in],结果也是一样的。仍然会有乱码或者字符被截断。
有什么其它好的方法么?
AFIC
2006-09-08
打赏
举报
回复
关键就在in,返回会自动转换的,
你只要把in改用LPCTSTR 返回用BSTR*,我觉得应该就没问题了。
yuddian
2006-09-07
打赏
举报
回复
to AFIC(AFIC),
在ACTIVEX的COM接口参数类型中,只有BSTR* 和 LPCTSTR 用来传递字符串。而后者只能够[in],不能够[out]一个参数,目前我需要从VC6的控件中保存一个字符串返回出来。而且这个字符串可能包含有中文汉字。
如果没有汉字,是没有问题的。
AFIC
2006-09-07
打赏
举报
回复
最好是用这个:
LPTSTR
yuddian
2006-09-07
打赏
举报
回复
Up
yuddian
2006-09-07
打赏
举报
回复
to AFIC(AFIC),如果在VC6上作修改,接口该如何进行修改呢?
AFIC
2006-09-07
打赏
举报
回复
参数格式[in,out],那没办法了,要么pb升级,要么vc改下接口。
yuddian
2006-09-07
打赏
举报
回复
问题描述如下:
1 用VC6写的一个ActiveX控件;
2 调用这个控件的程序是用PB7写的;
3 其中控件的有些接口是 BSTR* 参数格式[in,out],从PB7要把字符串传到VC6中,同时需要把处理之后的结果返回到PB7的
应用层.如果都使用英文字符的话,没有什么问题.如果其中包含有中文字符,那么就会出问题.
问题的表现就是出现乱码或者字符被截断.
wepwep
2006-09-07
打赏
举报
回复
你尝试测试中英文结合字符串
wepwep
2006-09-07
打赏
举报
回复
你把正确的字符串和乱码后的字符串都贴上来看看啊
yuddian
2006-09-07
打赏
举报
回复
谢谢 wepwep(德鲁伊) 的回复,有一点启示,我会继续寻找方法.如果身边有什么PB的高手,也请帮忙打听一下,谢谢先.
wepwep
2006-09-07
打赏
举报
回复
我对BSTR不懂,不过如果PB出现乱码那么应该是字符串中有错误的数据,汉字是2个字节的,不管是不是unicode的,系统是判断第一个字节的第8位(如10000000)是否为1,如果是1那么就是汉字,是和第二个字节合起来组成一个汉字。那么如果在汉字的字符串中插入了一个第8位为1的字节,那么整个汉字字符串就全乱了,直到遇到一个第8位为0的才会恢复。
具体怎么解决我帮不上忙了,不知道出现乱码的情况是怎么样了,不过提醒一下,在PB10以前的版本处理汉字的函数和处理英文的函数不一样的
yuddian
2006-09-07
打赏
举报
回复
我现在使用的PB7的版本.是不是PB7的版本就无法实现Unicode的操作了呀?
AFIC
2006-08-28
打赏
举报
回复
BSTR实际上是一个COM字符串,是Unicode的字符串加上长度信息。
因为是unicode的,所以推荐pb10以后的版本来调用该函数。
polestarxu
2006-08-27
打赏
举报
回复
是否跟字库有关系呢?
yuddian
2006-08-27
打赏
举报
回复
Up
yuddian
2006-08-26
打赏
举报
回复
谢谢大家,继续关注
圣殿骑士18
2006-08-26
打赏
举报
回复
up下
魔鬼代言人5800
2006-08-26
打赏
举报
回复
不会呀,只能帮你UP
加载更多回复(2)
delphi 和
vc
、C++数据
类型
对应关系
delphi和
vc
基本数据
类型
对应关系 unsigned long -> dword unsigned char -> byte char -> char UINT -> dword 『Delphi和C++数据
类型
对照表』 Delphi 字长/值域 C++ ShortInt 8位有符号整型 signed char SmallInt 16位有符号整型 short LongInt 32位有符号整型 int Byte 8位无符号整型 unsigned char Word 16位无符号整型 unsigned sho
BSTR
、LPSTR和LPWSTR 等多种
VC
字符
类型
分析
一、
BSTR
、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串
类型
,如
BSTR
、LPSTR和LPWSTR等。之所以
出现
类似上述的这些数据
类型
,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。那么什么是
BSTR
、LPSTR以及LPWSTR呢?
BSTR
(Basic S
_variant_t ,_
bstr
_t 与 C
String
类有什么区别 以及相互转换
_variant_t ,_
bstr
_t 与 C
String
类有什么区别 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君";
VC
++常用数据
类型
及其操作详解(非常经典,共同分享)
VC
++常用数据
类型
及其操作详解(非常经典,共同分享)
VC
常用数据
类型
使用转换详解
VC
常用数据
类型
使用转换详解- - 有关数据
类型
转换的整理 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君 "; char temp[20
API 调用
680
社区成员
4,762
社区内容
发帖
与我相关
我的任务
API 调用
PowerBuilder API 调用
复制链接
扫一扫
分享
社区描述
PowerBuilder API 调用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章