社区
ATL
帖子详情
VARIANT*如何转换为LPCTSTR?
linamu
2007-02-28 11:43:01
浏览器编程时有以下函数:
BeforeNavigate2Explorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel);
如何将 VARIANT* URL 转换为 LPCTSTR strURL?
...全文
471
3
打赏
收藏
VARIANT*如何转换为LPCTSTR?
浏览器编程时有以下函数: BeforeNavigate2Explorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel); 如何将 VARIANT* URL 转换为 LPCTSTR strURL?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lineuser
2008-04-17
打赏
举报
回复
mark 一下下
crumpy
2007-02-28
打赏
举报
回复
// Variant2TSTR.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "wchar.h"
#include "tchar.h"
#include "windows.h"
#pragma comment(lib, "oleaut32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
VARIANT var;
::VariantInit( &var );
var.bstrVal = ::SysAllocString( OLESTR("Hello 中文") );
var.vt = VT_BSTR;
TCHAR szText[MAX_PATH];
#if defined _UNICODE || defined UNICODE
lstrcpy(szText, var.bstrVal);
#else
WideCharToMultiByte(CP_ACP, 0, var.bstrVal, -1, szText, sizeof(szText), NULL, NULL);
#endif
_tprintf( TEXT("TSTR = %s\n"), szText);
::VariantClear( &var );
return 0;
}
crumpy
2007-02-28
打赏
举报
回复
1. 如果字符串保存在VARIANT中BSTR域中, 先将BSTR从VARIANT提取出来
2. 然后暂时将BSTR看作OLESTR或者WCHAR串 pwsz = (LPOLESTR)( var... );
3. 如果你用的是ATL或MFC, 包含afxpriv.h, 然后在程序中写:
USES_CONVERSION
LPTSTR psz = OLE2T( pwsz );
4. 用完后, 用SysFreeString释放VARIANT中的BSTR.
如果你不是用MFC/ATL, 那需要WideCharToMultiChar()这个API, 还要判断LPTSTR是CHAR*还是WCHAR*
char*
转换
为
VARIANT
以及将char*
转换
为L
PC
TSTR
本文介绍了一种有效的字符类型
转换
方法,包括如何将char*类型
转换
为
VARIANT
和L
PC
TSTR
。这两种
转换
方式在unicode和多字节环境下均经过了测试验证。
cstringw转l
pc
tstr
_CString, BSTR, L
PC
TSTR
概念(转)
本文详细介绍了C++中cstringw、L
PC
TSTR
、BSTR等字符串类型的概念及其相互
转换
方法。cstringw是动态TCHAR数组,L
PC
TSTR
是常量TCHAR指针,BSTR是系统专用的字符串格式。文章还探讨了不同字符串类型的表示法,如LPSTR、L
PC
STR,以及在Unicode和非Unicode环境下的TCHAR、LP
TSTR
和L
PC
TSTR
的使用。此外,文章还讨论了字符串
转换
到其他数据类型的方法,如itoa、atol、atof,以及如何在CString、BSTR和_
variant
_t之间进行
转换
。最后,文章提到了字符串处理的安全性和最佳实践,如避免使用不安全的强制类型
转换
,推荐使用GetBuffer和ReleaseBuffer进行CString和char*之间的
转换
。
关于C++的字符
转换
的踩坑之旅(持续更新,上次更新2021/3/26)
本文详细介绍了C++中不同字符集下字符串
转换
的方法,包括string与L
PC
TSTR
、_
variant
_t、CString之间的
转换
,以及CString到int和char*的
转换
过程。通过具体示例,讲解了在使用UNICODE和非UNICODE字符集时的
转换
技巧。
CString 是一种很有用的数据类型
本文详细探讨了MFC中的CString类的使用,包括字符串连接、格式化、与int、char*的相互
转换
,以及与L
PC
TSTR
、BSTR、
VARIANT
的
转换
。文章强调了使用 CString 的便利性和注意事项,特别提到了Unicode意识的重要性,以及在不同场景下如何正确使用各种
转换
方法以避免内存问题和效率问题。此外,还讨论了如何加载资源字符串以实现多语言支持,并给出了利用CString和临时对象的实例。
VC字符串
转换
本文详细介绍了C++中各种字符串表示法的关系与区别,包括char*、L
PC
TSTR
、BSTR、CString等,以及它们之间的
转换
方法。此外,文章还涵盖了如何在不同场景下高效使用这些字符串类型,包括与
VARIANT
、COM对象的交互,以及如何实现串的基本运算。通过实例代码解释了如何在C++中灵活运用这些字符串类型,为开发者提供了实用的指南。
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章