社区
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?
...全文
432
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*
ScriptObject (脚本解析类)
bool RunProcedure(L
PC
TSTR
szProcName, SAFEARRAY** saParameters,
VARIANT
* varRet); //protected: void CommonConstruct(); bool GetMethodsName(); L
PC
TSTR
GetScriptFunction(L
PC
TSTR
name);
CString操作大全指南
格式化字符串(包括 int 型转化为 CString );CString 型转化成 int 型;CString 型和 char* 类型的相互转化;char* 转化成 CString;CString 转化成 char* 之一:使用L
PC
TSTR
强制转化;CString 转化成 char* 之二...
梦想CAD控件3.0
SHORT CMxDrawOcxCtrl::GetLayerIdArray(
VARIANT
* pArrayId); SHORT CMxDrawOcxCtrl::GetLayerProp(LONG lId, BSTR* pszName, BSTR* pszLineTypeName, SHORT* pIsOff, SHORT* pIsLock, SHORT* pIsFrozen, BYTE* pR...
Java通过Jacob调用ActiveX,进行二进制数据交换
对于单个的基本类型的数据(byte、short、long、BOOL)等类型的数据,以及有很多字节组成的可见英文字符、汉字等组成的字符串(L
PC
TSTR
、BSTR类型都会进行编码
转换
)来说,使用VC的ActiveX项目向导可以方便地实现;...
餐厅管理信息系统课程设计
将E-R关系模型转化为二维表。本系统主要需要6个表,分别为用户信息表(UserInfo)、菜谱信息表(MenuInfo)、订餐信息表(OrderInfo)、桌台信息表(DeskInfo)、付款方式表(PayModeInfo)、当班统计表(CaldayInfo...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章