【VS开发】ConvertBSTRToString(filename) 不能将string转换为BSTR
环境:win7,x64,vs2008 sp1
把VC 6.0的工程文件用VS2008打开,编译报错: error C2664:“_com_util::ConvertBSTRToString”: 不能将参数 1从“String”转换为“BSTR”;
出错的程序代码是这句:
char*Filename=_com_util::ConvertBSTRToString(filename);
这代码是以前在VC 6.0里写的。VC 6.0里的默认的内置字符集是ANSI.
而上面的一段代码里的filename是一个定义的类型变量:String filename;
String 的定义是:typedef unsigned short* String;
BSTR 在VC6.0里是typedef unsigned short*,而在VS2008里却是wchar_t*,wchar_t是一个 16-bit UNICODE character;
注意COM编程里面只支持wchar_t即unicode编码形式。虽然上面的unsined short与wchar_t都是16位的,但是不同编码之间是不兼容的。ANSI以8bit来表示一个字符,而unicode以16bit来表示一个字符。如果我们的内存单元是8位来单位的,比如一个字符串“abc",用ANSI来表示就占用四个存储单元,而用UNICODE来表示就占用8个存储单元。很显然这两种编码是兼容的。我们想像一下内存模型就知道。
解决:
英:Setting of the project in "C/C++ -> Language -> Treat wchar_t as Built-In Type" to "No" (originally it was: "Yes(/Zc:wchar_t)".
汉:在VS2008里:项目->属性->配置属性->C/C++->语言;把wchar_t视为内置类型改为否即可。
转自:http://blog.sina.com.cn/s/blog_5ed3e6210100ff7m.html
参考:http://blog.csdn.net/li_hai/article/details/100326
转载于:https://www.cnblogs.com/huty/p/8518742.html
【VS开发】ConvertBSTRToString(filename) 不能将string转换为BSTR相关推荐
- 如何将std :: string转换为const char *或char *?
如何将<code>std::string转换为char*或const char* ? #1楼 看看这个: string str1("stackoverflow"); c ...
- string转换为bigdecimal_java如何将String转换为Int
Java 必知必会 第 1 篇(精挑 Stack Overflow在java中排名前100的问题懂得这些问题的答案帮你解决80%开发问题 )问题: java如何将String转换为Int 答案: ...
- C++ std::string 转换为 UTF-8 编码
在一次项目工程开发中,需要部署端(C++)向云端(Java)发送 HTTP POST 请求,但是在云端接受参数时出现乱码现象,故在部署端发送请求时,对请求参数进行一次 UTF-8 转码. // st ...
- 如何在Java中将String转换为int?
如何在Java中将String转换为int ? 我的字符串仅包含数字,我想返回它代表的数字. 例如,给定字符串"1234" ,结果应为数字1234 . #1楼 好吧,要考虑的一个非 ...
- JAVA 利用SimpleDateFormat将String转换为格式化的日期
1. /*** 使用用户格式提取字符串日期** @param strDate 日期字符串* @param pattern 日期格式* @return*/public static Date parse ...
- string转换为bigdecimal_SO面试题09:如何将String转换为Int?
# 问题 如何将String转换为int? 我的字符串仅仅包含数字,我想把它返回成一个整数类型. 例如,给你一个字符串 "1234",返回的应该是整型 1234. # 最佳答案 先 ...
- openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串. prin ...
- 如何在Java中将String转换为int
在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法. 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer ...
- byte转换为string乱码_Python如何将String转换为int ?
在Python中,我们可以使用int()将String转换为int. # String num1 = "88" # 'str'> print(type(num1)) # ...
- Java char转换为String,String转换为char数组
Today we will look into java char to String program. We will also learn how to convert String to a c ...
最新文章
- [BZOJ4448][SCOI2015]情报传递[dfs序+树状数组]
- 装车机器人_智造春天脚步近 青岛这家机器人公司着手打造模块化、标准化技术平台...
- python调用opengl_Python运行OpenGL示例
- 坦克大战系列6-API常用函数说明2
- Leetcode: Divide Two Integers
- PYTHON之路(八)
- MySQL主从、主主、半同步节点架构的的原理及实验总结
- 浪潮通信收入_浪潮获2019大数据“星河(Galaxy)”奖
- putty秘钥转换成xhell支持的格式
- Ubuntu16.04安装Hadoop2.7.3教程
- 移动开发者必须了解的10大跨平台工具
- PS(Photoshop)去水印的4个方法
- 2020 年 Github 上最牛的 Java 进阶教程及 Java 实战项目都在这里了!
- Java面试题精选四(oracle、mysql数据库)
- 关于 Google Play 商店下载应用一直处于“等待中”的问题
- 初中数学抽象教学的案例_新课标下初中数学问题情景教学案例和思考
- 学校计算机一级上网题,考试经验之谈:计算机一级考试上网题怎么操作?
- excel 两日期相减
- 2021最新.NET/C#面试汇总:《.NET/C#面试手册》
- EMC测试仪器_如何实现EMC的测试工作?
热门文章
- sap gui java_不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
- redis copy-on-write机制
- 无法启动此程序 因为计算机中丢失 msvcp71.dll,msvcp71.dll丢失怎样修复?计算机中丢失msvcp71.dll文件的解决方法...
- exists sql用法_《SQL进阶教程》笔记(3)
- MyBatis集合Spring(二)之SqlSession
- 【渝粤教育】国家开放大学2018年秋季 0529-21T高级英语阅读(1) 参考试题
- 【Python实例第33讲】单变量特征选择
- VC++学习方法及书籍推荐(转)
- 解读【ICLR2020】多伦多大学:基于策略网络的探索模型规划
- Qt 学习之路 2(3):Hello, world! 笔记