我在VS2005中用了一段代码:
#include <atlbase.h>//在文件的顶部
LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( lpHtml )+1 );
::lstrcpy( lpMem, lpHtml );
CComPtr< IStream > spStream;
::CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
这段代码的意思是创建一个字符流指针,“lpHtml”变量是LPTCSTR类型全局变量,编译通过了,但是运行就出错了,问题在CreateStreamOnHGlobal函数上,这段代码是放在
OnInitDialog函数里的,除了VS自动生成的代码没有其他代码。奇怪的是我用同样的方法同样的代码,在VC6中编译运行就没有任何问题,一切正常,请大家试一试,也请高手
帮助解决一下这个问题。
#include <atlbase.h>//在文件的顶部
LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( lpHtml )+1 );
::lstrcpy( lpMem, lpHtml );
CComPtr< IStream > spStream;
::CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
这段代码的意思是创建一个字符流指针,“lpHtml”变量是LPTCSTR类型全局变量,编译通过了,但是运行就出错了,问题在CreateStreamOnHGlobal函数上,这段代码是放在
OnInitDialog函数里的,除了VS自动生成的代码没有其他代码。奇怪的是我用同样的方法同样的代码,在VC6中编译运行就没有任何问题,一切正常,请大家试一试,也请高手
帮助解决一下这个问题。
解决方案 »
- mini2440的wince应用程序开发
- MFC双击Microsoft Web Browser全屏的问题
- 选择MFC ODBC Consumer vs2010崩溃的问题
- 100求助:窗体不能隐藏
- 在main函数里处理 异常 好吗?可出现异常时,程序总自动退出?
- 初学mfc,请高手帮忙看一下
- CheckBox 想把那个勾改成其它字符,怎么做?
- 想扩展CListCtrl的功能,能不能使每个单元格显示不同的颜色
- 如何一边计算,一边显示进度条提示进度呢?
- !@#$!!!!!!!!!windows下的计算器程序中,当按下数字键,计算器上按钮有下按效果,怎么样实现呢?
- 关于ListCtrl不明白的问题?
- 当我用鼠标点网页,有否方法指到我所点对象的类型
::CreateStreamOnHGlobal( lpMem, TRUE, &pIStream);
我用VC6.0新建工程,放上那段代码,调试运行没有问题,但是用2005打开这个工程在调试运行就出问题了。我希望大家如果有条件的话最好试一试,我
次请大家帮忙了!
LPCTSTR lpHtml=TEXT("test");
//vs 2005默认是unicode,下面一行造成分配的空间不够,改成如下便没问题
//vc6.0的sizeof(TCHAR)等于一,所以没有问题。
LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, (::lstrlen( lpHtml )+1)*sizeof(TCHAR) );
::lstrcpy( lpMem, lpHtml );
CComPtr < IStream > spStream;
::CreateStreamOnHGlobal( lpMem, TRUE, &spStream );