直接用汇编调用COM:用SpVoice朗读一个字符串,内详
来源:互联网 发布:淘宝四大营销工具 编辑:程序博客网 时间:2024/05/16 17:40
原帖http://www.aogosoft.com/downpage.asp?mode=viewsmtext&id=149
可以直接编译过,可以听到声音,其实COM在汇编中这样使用最简单,而这个偏移可以算出来的,或者直接在VC里找出来,起码比声明要方便些,汇编中声明太麻烦了以下例子中没有Release,如果使用请注意关于定义WCHAR的字符串真要命,不知是否有好的方法?
.586.model flat,stdcalloption casemap:none include windows.inc include kernel32.inc include ole32.inc includelib kernel32.lib includelib ole32.lib.dataCLSID_SpVoice GUID <096749377h, 03391h, 011D2h, <09Eh, 0E3h, 000h, 0C0h, 04Fh, 079h, 073h, 096h>>IID_ISpVoice GUID <06C44DF74h, 072B9h, 04992h, <0A1h, 0ECh, 0EFh, 099h, 06Eh, 004h, 022h, 0D4h>>TEXT db 'I',0,' ',0 ,'L',0 ,'o',0 ,'v',0 ,'e',0 ,' ',0 ,'Y',0 ,'o',0 ,'u',0 ,'!',0,0.data?PCOM dd ?.code; ---------------------------------------------------------------------------start: invoke CoInitialize,0 invoke CoCreateInstance,offset CLSID_SpVoice, 0, CLSCTX_INPROC_SERVER, offset IID_ISpVoice,offset PCOM .if eax == 0 push 0 push 0 push offset TEXT mov eax,PCOM push eax mov eax,[eax] call DWORD PTR[eax+50h] ;PCOM->Speak(L"I LOVE YOU!", 0, 0); .endif invoke ExitProcess,eaxend start
0 0
- 直接用汇编调用COM:用SpVoice朗读一个字符串,内详
- C/C++中调用直接用汇编写的函数
- 内详
- 用递归的方法将一个整数n转化为字符串(不是调用函数,直接输出)
- 用汇编访问COM对象
- [WIN32][AHK]sapi.spvoice的调用
- JAVA朗读中文字符串
- 关于com接口调用的反汇编
- C#使用反射调用SpVoice实现播放文本
- 不注册COM组件直接调用接口
- 不注册COM组件直接调用接口
- 用glue库写了一个main还是,调用一个com成功
- 中英文朗读器 v2.05 怎么用
- 用C#编写语音自动朗读机器人
- 用C#编写语音自动朗读机器人
- VC用TTS实现文字语音朗读
- VC用TTS实现文字语音朗读
- 一个用嵌入c汇编写的字符串排序(6410板子试验成功)
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记11之__聚类:基本概念
- myeclipse 8.5 32位
- [php learn] php 从头开始学习1
- streaming笔记 hive
- 鼠标滚轮实现单文档视图的放大与缩小
- 直接用汇编调用COM:用SpVoice朗读一个字符串,内详
- Football Goal(简单数学题)
- Selenium Webdriver java 积累
- mongoDB中Morphia接口封装
- 一致性 hash 算法( consistent hashing )
- hbase-zookeeper
- DS4000/DS5000添加新硬盘的步骤与注意事项
- LeetCode-Reverse Words in a String
- POJ2828 Buy Tickets