• 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 > 用ATL写一个COM的DLL,参数是char怎么办?

用ATL写一个COM的DLL,参数是char怎么办?

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

佚名通过本文主要向大家介绍了atl71.dll修复工具,atl80.dll官方下载,atl71.dll一键修复,atl71.dll,atl71.dll修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 用ATL写一个COM的DLL,参数是char怎么办?
描述:

有一个类,要写成COM类型的DLL,我用ATL写
别的函数都正常,最后一个函数的参数是char*,我写上后编译错误
error C2259: 'CComObject<class CEventMatch>' : cannot instantiate abstract class due to following members: c:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator<class ATL::CComObject<class CEventMatch> >::CreateInstance(void *,const struct _GUID &
,void ** )'
IDL文件中声明如下:
HRESULT InitDB(char* ODBCConnstr);//去掉此行正常编译
类中如下:
头:
virtual HRESULT STDMETHODCALLTYPE InitDB2(char* ODBCConnstr);
CPP:
HRESULT CEventMatch::InitDB2(LPCSTR ODBCConnstr)
{
...
请问这个应该如何解决?


解决方案1:

用CHAR试,TCHAR也试
atl中,它可以生d成asni,或unicode
我用的没有问题

解决方案2:

用WCHAR

解决方案3:

我只知道如果继承与iDispatch,是不可用void *的

解决方案4:

HRESULT InitDB(OLECHAR *ODBCConnstr);
注意COM接口都使用宽字符
客户端访问时使用BSTR类型来初始化连接串
::SysAllocString("Provider....")
用完后注意释放
::SysFreeString();

解决方案5:

参数换成BSTR


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

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

  • 一个ATL做的IE工具条。测试时出现问题。望各位大哥大姐指教。。
  • 别人用atl写的dll让我来测试,怎么搞啊?
  • 一个atl的工具栏
  • atl编写ie工具条
  • 用ATL如何实现操作数据库的dll编程?
  • 请有经验的高手指点一下,ATL/COM最快上手需多长时间?
  • ATL数据类型转换问题
  • 有没有COM,ATL,MTS方面的电子书籍下载
  • atl编程时遇到如下问题,如何解决??
  • 介绍几个下栽ATL、COM的英文电子书籍的网站!!!

相关文章

  • 2017-06-04 colecontrolocx在MFC中调用时重设位置,单击控件会回到原始位置
  • 2017-06-04 求助:在对话框内打开PowerPoint的方法?
  • 2017-06-04 在com中能把一个类作为参数传递吗,如intainta,classAa
  • 2017-06-05 请教c++/com高手:在多线程调用IDispatch::invoke会报错误问题,请告诉原因!!
  • 2017-06-05 这个Hook该如何写?
  • 2017-06-05 二个简单的问题
  • 2017-06-05 请问关于dll中fread的问题
  • 2017-06-05 MFC上位机模拟串口232的疲劳测试出现内存问题,遇到过的帮忙
  • 2017-06-04 在vc++中取mysqltime类型数据会自动在时分秒前面带上年月日,求解只显示时分秒,不出现年月日
  • 2017-06-04 ATL做的word插件中怎样响应word事件,谁做过类似的东西啊

文章分类

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

最近更新的内容

    • 高分求教!急!急!动态链结库中用CPropertySheet创建的属性页为什么会死?
    • 在DLL中定义的类,在调用DLL的程序里能声明这个类的对象吗?
    • 关于VC读写EXCEL的问题
    • 高分请教:VC测试ActiveX没问题,VB测试的时候BSTR参数出错
    • 有人用过或者开发过WPS2002的加载项吗?
    • 设置等宽字体问题
    • 一个关于GetWindowRect的问题
    • VB调用dllvc出错,急,在线等!!
    • ATL持久化问题
    • 使用boundchecker检查程序发现一下问题,比较郁闷!

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

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