博客园  :: 首页  :: 联系 :: 管理

vs2005中Shockwave Flash Object不能使用的解决办法

Posted on 2007-04-24 18:04  sunrack  阅读(1711)  评论(0编辑  收藏  举报

      在用vs2005中的Shockwave Flash Object时最初出现了一些问题,总是提示说Active X不能正确注册,从而导致Shockwave Flash Object不能使用,在引用处看到AxShockwaveFlashObject没有正确加载

      查询了一些文章,说出现这种问题应该说是microsoft的一个bug,如何解决这一问题大概有如下几种方式:

      测试发现在vs2003中使用Shockwave Flash Object是没有问题,具体原因是vs2003中使用的是Flash.ocx 7.0版本,而vs2005中使用的是8.0或者9b.

      (1)下载老版本的Flash.ocx,并注册后使用(采用这种方式基本功能都能使用,但高版本的一些特性没办法用)

      (2)将能用的Interop.ShockwaveFlashObjects.dll copy到工程中的objDebug目录下(这种方式不是很安全,在有些情况下会出现异常)

      (3)手动去注册

         regsvr32 c:/windows/system32/macromed/flash/flash9b.ocx

            采用这种方式能解决vs2005中Shockwave Flash Object不能使用的问题,如果注册之后不能马上使用,请重起机器,或许就能解决

      (4)可以通过手动更改 Form1.Designer.cs(这里仅仅是一个例子,Form1.Designer.cs中的Form1指的是要加载Shockwave Flash Object的窗体),在InitializeComponent函数开始位置加上如下语句

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));

先清理解决方案然后再重新生成解决方案,此时应该可以看到AxShockwaveFlashObject已经正确加载