社区
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?
...全文
447
3
打赏
收藏
VARIANT*如何转换为LPCTSTR?
浏览器编程时有以下函数: BeforeNavigate2Explorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel); 如何将 VARIANT* URL 转换为 LPCTSTR strURL?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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*
VC++类型
转换
详解
对VC++常用数据类型的解释和数据类型之间的相互
转换
C++到C#数据类型
转换
C++和C#之间使用不同数据类型,当使用不同的语言实现时就需要
转换
数据类型
VC数据类型
转换
详解VC数据类型
转换
详解
VC数据类型
转换
详解 VC数据类型
转换
详解
MFC 数据类型
转换
1、CString to char* 经过类型强制
转换
,可以将 CString 类型
转换
成 char*,例如: CString cStr = "Hello,world!"; char* zStr = (char*)(L
PC
TSTR
)cStr; 2、char* to CString char*类型可以直接给 CString,完成自动
转换
, 例如: char* zStr = "Hello,world!"; CString cStr = zStr; 3、CString to L
PC
STR 将 CString
转换
成 L
PC
STR,需要获得 CString 的长度,例如: CString cStr = _T("Hello,world!"); int nLen = cStr.GetLength(); L
PC
STR lpszBuf = cStr.GetBuffer(nLen);
ScriptObject (脚本解析类)
参考及修改: BOOL SetTimeout(long lTime); L
PC
TSTR
GetLanguage(); void SetLanguage(L
PC
TSTR
szLanguage); int GetMethodsCount() const; L
PC
TSTR
GetNameAt(int index); void Reset(); bool LoadScript(L
PC
TSTR
szFilename); bool LoadScriptResource(L
PC
TSTR
lpName, L
PC
TSTR
lpType, HINSTANCE hInstance); bool AddScript(L
PC
TSTR
szCode); bool AddObject(L
PC
TSTR
szObject,LPDISPATCH Object,bool AddMembers); L
PC
TSTR
GetErrorString(); bool ExecuteStatement(L
PC
TSTR
szStatement); bool RunProcedure(L
PC
TSTR
szProcName, SAFEARRAY** saParameters,
VARIANT
* varRet); //protected: void CommonConstruct(); bool GetMethodsName(); L
PC
TSTR
GetScriptFunction(L
PC
TSTR
name);
ATL
3,248
社区成员
48,531
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章