• 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中使用COM总是出错啊?大家帮帮忙啊!!急!!弄了一下午了,还没弄好!

为什么我在DLL中使用COM总是出错啊?大家帮帮忙啊!!急!!弄了一下午了,还没弄好!

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

佚名通过本文主要向大家介绍了 为什么我在DLL中使用COM总是出错啊?大家帮帮忙啊!!急!!弄了一下午了,还没弄好!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 为什么我在DLL中使用COM总是出错啊?大家帮帮忙啊!!急!!弄了一下午了,还没弄好!
描述:

就是MS 的TTS,怎么在DLL中使用老是出错呢?程序运行总是说XXXX内存地址处不能为写。
DLL中的代码:
extern "C" _declspec(dllexport) BOOL SpeakText(WCHAR * strSpeak)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
ISpVoice * pVoice = NULL;
if (FAILED(CoInitialize(NULL)))
{
MessageBox(NULL,"初始化错误","错误",MB_OK|MB_ICONERROR);
return FALSE;
}
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->Speak(strSpeak,0,NULL); 
pVoice->Release();
pVoice = NULL;
}
CoUninitialize();
return TRUE;
}


解决方案1:

我做的只用pVoice->Speak("good luck");调用成功,但我的不是在DLL中。

解决方案2:

代码没错。
tts 就是 text to speech。

解决方案3:

BOOL SpeakText(WCHAR * strSpeak)
....
hr = pVoice->Speak(strSpeak,0,NULL);
先试验如下代码看看
      _bstr_t t;
      t=strSpeak;
      hr = pVoice->Speak(t,0,NULL);
或者
     BSTR t;
     t=SysAllocString(strSpeak);
     hr = pVoice->Speak(t,0,NULL);
     SysStringFree(t);

解决方案4:

看来看去,只有这里能出错
hr = pVoice->Speak(strSpeak,0,NULL); 
不过我不知道tts是什么
老兄能不能解释一下


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

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

  • 为什么我在DLL中使用COM总是出错啊?大家帮帮忙啊!!急!!弄了一下午了,还没弄好!

相关文章

  • 2017-06-04 如何保存RICHEDIT中的OLE对象并实现复制粘贴???(像QQ一样实现复制粘贴并保存到聊天记录)
  • 2017-06-05 怎样注销COM的进程?在线等!解决就给分!
  • 2017-06-05 高分求高手一进程监控另一个进程是否运行中
  • 2017-06-04 用VC开发基于AcrobatSDK的网络文档浏览器,请指点指点偶>_<
  • 2017-06-04 如何在ATL服务内释放自身?
  • 2017-06-05 求助:IWebBrowser,浏览器相关:DIID_HTMLElementEvents2,修改鼠标点击事件的信息IHTMLEventObj2;
  • 2017-06-04 ActiveX莫名其妙不能注册了,这是什么原因啊。
  • 2017-06-05 十万火急,如何把钩子函数钩到的消息删除掉
  • 2017-06-05 调用外部函数时的问题
  • 2017-06-05 WH_GETMESSAGE钩子,为什么无法丢弃消息

文章分类

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

最近更新的内容

    • 关于多线程的一个问题,向各位大虾请教!!
    • OCX设计问题VC如何调用OCX内部方法,明天国庆节,进来的人都有分!千金散尽还复来
    • 我想在ATL中实现下载指定URL上的资源,MFC中我用CInternetSession实现的。请问ATL中有什么好的替代方法吗?
    • ATL菜鸟问题
    • 请教一个WTL问题~
    • 多线程方式使用WinInet问题
    • comdll的DllGetClassObject函数如何导出啊?
    • COM组件内,让CEdit响应方向键的输入以及WTL里的LBUTTONDOWN的消息映射问题
    • 哪里Nortondiskedit下载,或者给我一个,lijie_123@sohucom,急急急急急急
    • ATL中如何使用MFC的CDC类???

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

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