• 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 > vb程序员迫于无奈用ATL作COM,遇到几个初级问题,走过路过都来看看

vb程序员迫于无奈用ATL作COM,遇到几个初级问题,走过路过都来看看

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

佚名通过本文主要向大家介绍了atl,atl71.dll,atl100.dll下载,atl71.dll修复,穿越火线atl71.dll等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: vb程序员迫于无奈用ATL作COM,遇到几个初级问题,走过路过都来看看
描述:

我的目的,把一个md5加密的函数封装成VB中能用的dll,下面先说问题,后附代码
接口定义
[id(1), helpstring("方法MDString")] HRESULT MDString([in] BSTR sString, [out,retval] BSTR* rString);
1、传入参数问题,我想实现传入参数是值传递的一个字符串,是不是应该用BSTR
2、BSTR转换为char*问题我是这样解决的,不知对不对
     先 #include <atlbase.h>
     程序中
     char* string;
     string= OLE2A( sString ); 
3、返回字符串我是用  *rString=A2W(m_output);  ,对不对?  m_output是存字符串的CHAR数组
4、vb调用之后,出错,debug显示的错误信息是 stack around the variable "output1" was corrupted,不知道什么意思,具体请看下面代码
下面是代码,不算长,请大家帮忙仔细看看,千万分感谢!!
STDMETHODIMP Cmd5::MDString(BSTR sString, BSTR* rString)
{
// TODO: 在此添加实现代码
MD5_CTX context;
unsigned char digest[16];
char output1[32];
         
         //这是将BSTR转换为Char*的
char* string;
USES_CONVERSION;
string= OLE2A( sString );
unsigned int len = (unsigned int)strlen(string);
int i;
MD5Init(&context);
MD5Update(&context, (unsigned char*)string, len);
MD5Final(digest, &context);
for(i = 0; i < 16; i++)
{
sprintf(&(output1[2*i]), "%02x", (unsigned char)digest[i]);
sprintf(&(output1[2*i+1]), "%02x", (unsigned char)(digest[i]<<4));
}
for(i = 0; i < 32; i++)
{
m_output[i] = output1[i];
}
m_output[32] = '\0';
*rString=A2W(m_output);
return S_OK;
}


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

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

  • 为什么用向导生成的ATLCOM工程(dll)没有dlldatac文件
  • 关于用ATL开发office插件
  • 疑惑:如何使用通过atl工程编写的类接口
  • ATL怎么实现可变参数的接口?
  • codeproject上的经典代码,ATL做OPENGL控件,为什么不能在VB环境下正常工作,如何改进
  • VC的ATL编COM组件,Com之间调用问题
  • 要用atl写个控件,涉及到界面的,怎么将wtl和atl结合起来用呐?用wtl来做控件的界面
  • ATL实现office插件问题?
  • 谁能帮我看一下关于ATL编写COM组件
  • 在ATL中不能用#import导入excel9olb文件么??

相关文章

  • 2017-06-05 高手帮忙啊!DLL问题
  • 2017-06-04 用atl向导创建的com组建不能用VB中的CreateObject创建,咋回事?
  • 2017-06-05 可以把下面这段C程序转成asp可以调用的DLL吗?付小量momey
  • 2017-06-04 大家推荐一本做activex控件的书?
  • 2017-06-04 请问我用CAxWindow创建了一个HTML控件,在里面用jQuery却无法执行跨域的XMLHttpRequest,该如何是好?
  • 2017-06-04 一个组件外部进程条的问题,急,请高手指教
  • 2017-06-04 VC采用ADO连接数据库,假如数据库有3张表,怎么将数据添加到3张表中。
  • 2017-06-04 opengl顶点法向
  • 2017-06-04 为何CMSFlexGrid在CTabCtrl上无法显示在线等急!!!
  • 2017-06-05 一个有关dll调用的问题!

文章分类

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

最近更新的内容

    • 初学线程的一个小问题!
    • 请高手指点:出现这样的警告如何解决?
    • 请教,WebBrowser控件的问题?
    • delphi中activex做的activeform嵌在网页中如何利用activex关闭这个ie窗口
    • 请帮我看看这3个是什么错误?
    • 嵌入到ocx控件如何实现全屏?
    • ActiveX控件的OnMove问题
    • 求助:主窗口的OnSize中用子窗口的指针调用MoveWindow,子窗口的OnSize没有响应
    • 如何与网页上的ActiveX控件交互。
    • 一个COM的问题

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

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