100分求购,制作小精灵代码(c++biuder 6)

slchen 2005-06-10 09:48:16
我用c++biuder 5制作小精灵是可以通过,可是c++biuder 6时总是跳不过去,总是说TAgent未定义,那位有做过的代码请给我一份,或提示我怎样调通。
...全文
377 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
WiseNeuro 2005-06-22
  • 打赏
  • 举报
回复
谢谢你.我查出来了,要在使用Speak之前设置LanguageID = 0x0409; //english
这样就可以读出来了.太高兴了,现在那个Peedy正在我桌面上悠闲的整理自己的
羽毛呢,还调皮的取出个眼镜戴上了呢...哈哈
F117p 2005-06-21
  • 打赏
  • 举报
回复
因为你没有安装TTS发音引擎,你可以到M$网站上去下载
F117p 2005-06-21
  • 打赏
  • 举报
回复
在控制面版里设置语声,有2中选者simple Chinese和English,如果选前者,则能读中文汉字,英文单词安字母来读,如果选择ENGLISH则,中文汉字不能读,只读英语
WiseNeuro 2005-06-21
  • 打赏
  • 举报
回复
我安了tts,但还是读不出来
F117p 2005-06-20
  • 打赏
  • 举报
回复
re:
把那句改为: Character->Speak(TVariant("Hello"),TVariant(""));
WiseNeuro 2005-06-20
  • 打赏
  • 举报
回复
谢谢。但为什么执行 Character->Speak(TVariant("Hello"),TVariant(""));

后只有文字显示,而不朗读出来呢?
WiseNeuro 2005-06-20
  • 打赏
  • 举报
回复
to F117p((兰色狐狸)每天都要去检破烂来维持生活):我是了一下,在cb6中它好使,
但想请教一下怎么用Speak(tagVARIENT,tagVARIENT)方法,
Character->Speak(WideString("Hello"),WideString(""));不能编译通过。
WiseNeuro 2005-06-19
  • 打赏
  • 举报
回复
学习一下
renfushen 2005-06-19
  • 打赏
  • 举报
回复
能写的在详细写吗?我这个控件第一次使用。
1、怎样卸载
2、“再然连CBuilder6\Import里的那个lib也加入到工程里去”那个lib
谢谢,多帮忙!!
slchen 2005-06-19
  • 打赏
  • 举报
回复
能帮忙解释一下,上面代码的用法吗?我把他们加到FormCreat里,和没加的时候一样,还是编译部过去,还是出来一个cpu的对话框,在按f9,就谈出对话框(翻译):工程文件中的消息出错,可惜没办法把图片贴上去。
F117p 2005-06-19
  • 打赏
  • 举报
回复
以下是bcb6下编译连接通过。


TVariant mv("C:\\WINDOWS\\msagent\\chars\\merlin.acs");
IAgentCtlRequest *pR= Agent1->Characters->Load(WideString("merlin").c_bstr(),mv);
// IAgentCtlCharacter *Character=Agent1->Characters->Character(WideString("merlin"));
IAgentCtlCharacterEx* Character =
(IAgentCtlCharacterEx*)Agent1->Characters->Character(WideString("merlin").c_bstr());

Character->Show(TVariant(0));
Character->MoveTo(100,100,TVariant(2));
Character->Play(WideString("Search"));

对于和bcb5的不同,由于TVariant类型的转换,和BSTR的问题,导致了在bcb6下不能编译通过,可能是bcb6类型检查更加严格了吧?
F117p 2005-06-19
  • 打赏
  • 举报
回复
试下把Agent卸了,再重新安装。
或重新写个工程,再然连CBuilder6\Import里的那个lib也加入到工程里去

以上代码,可以原封不动的拷贝过去,比如考到一个Button的OnClick事件里。
能编译和连接,运行正常显示小精灵,就是那个老头子
wg961423 2005-06-17
  • 打赏
  • 举报
回复
我用的也有问题:安装好Mcrosoft Agent Control 2.0后,把控件放在窗体上,没有任何代码,编译通过,但按网上的一些例子写了后,Link就出错了([Linker Error] Unresolved external 'Agentobjects_tlb::IID_IAgentCtlCharacterEx' referenced from E:\BCB\AGENT\UNIT1.OBJ)。

这是什么问题呢?

XP SP2 BCB6.0
崔作非 2005-06-17
  • 打赏
  • 举报
回复
你的项目是不是从CB5升迁到CB6的呀,说不定是这个问题,你机器里的其它用角色代理的程序的角色能正常工作吗?如office,杀毒软件等。
renfushen 2005-06-17
  • 打赏
  • 举报
回复
我也想知道
renfushen 2005-06-17
  • 打赏
  • 举报
回复
帮帮忙啊

renfushen 2005-06-16
  • 打赏
  • 举报
回复
up
崔作非 2005-06-16
  • 打赏
  • 举报
回复
这个问题可能和你的windows版本和补丁有关。在导入Active库的时候,虽然有时编译报错,但当你把这些出错语句用注释注掉的话,还是能正常工作的,我在BCB6中就遇到过几次这样的问题。最后还有一种可能,就是微软角色代理安装的不正确,一般的COM类东东,最好是开发版本和发行版本一样,不然有可以发生潜在的错误。
slchen 2005-06-14
  • 打赏
  • 举报
回复
我安装的Mcrosoft Agent Control 2.0,安装以后,把控件放到窗体上,没有任何代码都编译部过去(cb6),但是在cb5上就没有此问题。

寻求解决办法!!!!!
constantine 2005-06-13
  • 打赏
  • 举报
回复
首先确认安装了,之后看一下这段代码
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "AgentObjects_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
load=false;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(load==false)
{
if(OpenDialog1->Execute())
{
wact="a";
act=wact;
char tmp[100];
GetWindowsDirectory(tmp,100);
path=OpenDialog1->FileName;
try
{
Agent1->Characters->Load(act,path);
}
catch(...)
{
ShowMessage("不能正常载入精灵助手!");
return;
}
numan=Agent1->Characters->Character(act);
numan->Show(0);
talk="大家好,我是精灵助手,有什么疑问尽管问我好了!";
numan->Speak(talk,"");
load=true;
}
}
else
ShowMessage("精灵助手已经载入了,请不要重复加载!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(load==true)
{
talk="Bye bye 我走了!";
numan->Speak(talk,"");
Sleep(1000);
Agent1->Characters->Unload(act);
load=false;
}
else
ShowMessage("请先载入精灵助手!");
}
//---------------------------------------------------------------------------
WideString tmpact[28]={"Acknowledge","LookDown",
"Sad","Alert","LookDownBlink","Search","Announce",
"LookUp","Blink","LookUpBlink","Confused",
"LookLeft","Suggest","Congratulate","LookLeftBlink",
"Surprised","Decline","LookRight","Think",
"DontRecognize","LookRightBlink","Wave","Explain",
"Write","Pleased","Read","Greet","RestPose"};

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
if(load==true)
{

BSTR active=tmpact[RadioGroup1->ItemIndex];
try
{
numan->Play(active);
talk="我现在正在"+RadioGroup1->Items->Strings[RadioGroup1->ItemIndex]+"呢!";
numan->Speak(talk,"");
}
catch(...)
{
talk="对不起,没有"+RadioGroup1->Items->Strings[RadioGroup1->ItemIndex]+"这个动作!";
numan->Speak(talk,"");
}
}
else
ShowMessage("请先载入精灵助手!");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(load==true)
{
talk="我要藏起来了!";
numan->Speak(talk,"");
numan->Hide(0);
}
else
ShowMessage("请先载入精灵助手!");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{

if(load==true)
{
numan->Show(0);
talk="嘿嘿,我又来了!";
numan->Speak(talk,"");
}
else
ShowMessage("请先载入精灵助手!");
}
//---------------------------------------------------------------------------

加载更多回复(3)

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧