CB调用Flash里的函数报错,请高手帮解决一下。

tulipcaicai 2010-09-28 11:47:15
在CB里用ShockwaveFlash这个控件播放flash,同时有一个button调用flash里的一个名为myFunction的函数。但一调用就报错'GetDefaultInterface()->CallFunctioin(request,(BSTR*)&response)':未指定的错误@ShockwaveFlashObjects_OCX.cpp/300请各位高手帮看一下吧,弄了两天也没个进展。


void __fastcall TForm1::Button16Click(TObject *Sender)
{
char* a = "myFunction";
WCHAR *p =
ShockwaveFlash1->CallFunction(WideString(a).c_bstr());
}


...全文
177 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2010-10-02
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 mini_peng 的回复:]
现学现卖,妖哥别生气啊!
我是从你发的图片的链接地址,看到是http://hi.csdn……才想到的。
[/Quote]

牧牛童子 2010-09-30
  • 打赏
  • 举报
回复
现学现卖,妖哥别生气啊!
我是从你发的图片的链接地址,看到是http://hi.csdn……才想到的。
牧牛童子 2010-09-30
  • 打赏
  • 举报
回复
我来个文不对题,帮楼主揭秘妖哥如何在回贴时发图片的:
1、将图片上传到CSDN个人相册
2、发贴时,点击回复框倒数第五个图标(插入图片URL)
3、完成。
tulipcaicai 2010-09-30
  • 打赏
  • 举报
回复
自己顶,求解决!
tulipcaicai 2010-09-30
  • 打赏
  • 举报
回复
成了,哈哈
谢谢21楼
tulipcaicai 2010-09-30
  • 打赏
  • 举报
回复
tulipcaicai 2010-09-30
  • 打赏
  • 举报
回复
tulipcaicai 2010-09-29
  • 打赏
  • 举报
回复
妖哥,还有其它的flash插件么?
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
还是没有头绪
laowang2 2010-09-28
  • 打赏
  • 举报
回复
学习了。
ccrun.com 2010-09-28
  • 打赏
  • 举报
回复
晕。刚试着搜索了一下,发现调用Flash里函数不应该这样搞。
你参考一下这个帖子:
http://topic.csdn.net/u/20100810/16/23b95724-2c11-4061-9f65-dc3da83c4e31.html
ccrun.com 2010-09-28
  • 打赏
  • 举报
回复
如果能调用成功,疑似最后要手动释放一下,以防内存泄露。
::CoTaskMemFree(p);
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
E2227 Extra parameter in call to _fastcall TShockwaveFlash::CallFunction(wchar_t *)

不成,还是报错
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
妖哥,怎么发图啊?教一下呗,我老是杯具
ccrun.com 2010-09-28
  • 打赏
  • 举报
回复
这才是你的图:


看图中的提示,貌似需要两个参数的?一个请求,一个回应。
试试:
WideString a = "myFunction";
BSTR *p;
ShockwaveFlash1->CallFunction(a.c_bstr(), p);
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
妖哥看来是没好办法喽?
ccrun.com 2010-09-28
  • 打赏
  • 举报
回复
恩,这就叫包装纸里包着一个包装纸。

这个TShockwaveFlash::CallFunction里也许有内存泄露的可能。
tulipcaicai 2010-09-28
  • 打赏
  • 举报
回复
错误仍然是我发的那个图。
我看了一下ShockwaveFlashObjects_OCX.cpp,里面是这样实现的

BSTR __fastcall TShockwaveFlash::CallFunction(BSTR request/*[in]*/)
{
BSTR response = 0;
OLECHECK(GetDefaultInterface()->CallFunction(request, (BSTR*)&response));
return response;
}
ccrun.com 2010-09-28
  • 打赏
  • 举报
回复
晕。我在12楼的代码明显是错误的。呵呵,手工打造,没注意。

现在的错误提示是什么?
加载更多回复(6)

604

社区成员

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

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