如何把Char或AnsiString转换诚wchar_t类型
如何把Char或AnsiString转换诚wchar_t类型?
请求帮助,谢谢了!
AnsiString WebName = "宁波会议";
wchar_t wctTemp1[5];
wchar_t *d1 = L"宁波会议";
WebName.WideChar(wctTemp1, WebName.WideCharBufSize());
这个是在Com中用的方法,函数的传入的值是wchar_t * 格式的;
我用两种方式一个是直接定义wchar_t内容指向的d1
另一个是用AnsiString 的串换方法把字符串转换成wchar_t的格式
我试验了一下感觉wctTemp1里面的值跟d1 不一样?我每次用的时候,COM中的一个函数用d1 传入值的时候工作正常,但是用wctTemp1的时候就报错,提示:灾难性事故。
COM组件是用Delphi编写的,您有没有遇到过传入的参数要转换成wchar_t的指针方式传入的?
您是怎么处理的?谢谢拉!
问题点数:30、回复次数:6Top
1 楼lurel(城市陌生人)回复于 2006-03-06 08:36:29 得分 0
你的代码应该是没问题的,再试试?
一般COM组件参数大多为wchar_t的类型的Top
2 楼G66606495(键疯)回复于 2006-03-06 08:55:35 得分 8
String a="aadfa";
BSTR b;
b=WideString(a);
我也是在COM中用,就直接上面这样没问题.Top
3 楼songhtao(三十年孤独)回复于 2006-03-06 11:58:37 得分 20
WideString str;
AnsiString xxx = "kdjfdjf";
str = xxx;
wchar_t *t = str.c_bstr();Top
4 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-06 15:24:39 得分 2
楼主最好搜索一下原来的贴子,就这个版块,有不少相关的贴子有提到,并且有比较优秀的回复。Top
5 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-06 15:26:01 得分 0
不过可能不是在基础类,最好往分布式那块找找。基于COM使用BSTR传值可能更适合。Top
6 楼hzbigdog(苦命的程序员)回复于 2006-03-09 00:48:26 得分 0
谢谢各位老大!问题解决拉!谢谢咯!Top




