• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 在使用DLL做的ALT控件中,如何传递字符串数值?

在使用DLL做的ALT控件中,如何传递字符串数值?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了alt100.dll,alt71dll,alt100.dll下载,穿越火线alt71dll,alt80.dll等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在使用DLL做的ALT控件中,如何传递字符串数值?
描述:

大家好,刚学习ATL技术,。
我现在用VC以动态库的形式做了一个控件,现在我要把控件中的值传递到WEB页面中的text框中,该如何做?为什么我传出来的都是一些乱码,谢谢。
以下是我声明的代码:
.h
STDMETHOD(get_strBuf3)(/*[out, retval]*/ BSTR* pVal);
STDMETHOD(put_strBuf3)(/*[in]*/ BSTR newVal);
.cpp
STDMETHODIMP CMagic::get_strBuf2(BSTR *pVal)
{
// TODO: Add your implementation code here
// strMagicBuf2 = new TCHAR[50];
// strcpy (strMagicBuf2, "Get String");
ZeroMemory (m_szBuf2, sizeof(m_szBuf2));
strcpy ((char*)m_szBuf2, ("this is test"));
*pVal = (BSTR)m_szBuf2;
return S_OK;
}
为什么我在网页上接收到的都是乱码?
谢谢。100分


解决方案1:

或者直接用L"this is a test"

解决方案2:

其实,.ocx的控件和.dll的控件只是文件名不同!!
"this is test"是单字节字符串,不能强制copy到m_szBuf2.因为m_sz_Buf2是宽字节字符串
要通过wcstombs函数转化或宏转化后负值

解决方案3:

字符串数组是不应该经过简单的类型转换就传递出去的,因为BSTR好像是宽字符,你要这么转换
*pVal = _com_util::ConvertStringToBSTR(user.name);
要把 comsupp.lib 假如到工程中
#include <comutil.h> 
呵呵我是天地有情 蹭分来了

解决方案4:

STDMETHODIMP CMagic::get_strBuf2(BSTR *pVal)
{
CString str("test");
*pVal = str.AllocSysString();
return S_OK;
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在使用DLL做的ALT控件中,如何传递字符串数值?

相关文章

  • 2017-06-05 这个VC编的DLL在DELPHI中能用吗?
  • 2017-06-04 用ATL::CString,在哪里设置ATL_CSTRING_NO_CRT
  • 2017-06-05 请教PROCESS_INFOMATION这个数据结构应该包含那个头文件
  • 2017-06-05 求高手指教:保存网页时,怎样得到保存后的文件信息
  • 2017-06-05 调用CWnd的Create失败,返回值为ERROR_ACCESS_DENIED
  • 2017-06-04 令人苦恼的ocx使用问题请斑竹出面解答
  • 2017-06-04 VS2010代码文件自动生成的问题
  • 2017-06-04 vc60加载office类型库后,程序无法运行
  • 2017-06-04 idl,odl文件定义和包含,在线等
  • 2017-06-04 用vc实现在word中用鼠标拖动自制的ActiveX控件?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何把浏览器中的图像变成灰度图像来显示
    • 如何给另外一个进程发结束消息或者说如何获得另外一个进程的句柄?
    • 请问弹出下面的消息是什么原因?
    • 怎么更改一个ole对象的图标啊?
    • 关于WindowsMediaPlayer64控件的问题
    • 请教关于COM中属性值为noncreatable的coclass的问题
    • 求教:如何截获某个进程的任何消息
    • 在控件的绘制里怎样输出文字?
    • 怎样得到别人进程开始地址和结束地址
    • 能不能挂起一个进程?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有