在试图在C#和flash对象(swf)之间进行通信时,我面临以下异常。我试图对Flash64_13___214.ocx进行剪切以生成2个程序集( AxShockwaveFlash.dll和ShockwaveFlashObject.dll ),然后在一个控制台应用程序中测试我的代码。我的代码一般如下:
AxShockwaveFlash player = new AxShockwaveFlash();
player.CreateControl();
player.WMode = "transparent";
player.AllowScriptAccess = "sameDomain";
player.Loop = false;
player.LoadMovie(0, @"encrypt.swf");在点击LoadMovie之后,我得到了以下错误:
未处理System.AccessViolationException =-2147467261 Message=Attempted以读取或写入受保护的内存。这通常表明其他内存已损坏。 在ShockwaveFlashObjects.IShockwaveFlash.LoadMovie(Int32层,String url在AxShockwaveFlashObjects.AxShockwaveFlash.LoadMovie(Int32层,String url)在c:\Windows\System32\AxShockwaveFlashObjects.cs:line 685 at TestActionScript2.Program.Main(String[] args)在c:\Something\trunk\Src\TestActionScript2\Program.cs:line 41的System.AppDomain._nExecuteAssembly(RuntimeAssembly组装中,Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback回调,Object state,Boolean ) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,Object state,Boolean )在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,Object state)在System.Threading.ThreadHelper.ThreadStart()
请帮我~~
发布于 2015-02-25 10:24:17
嗨,我遇到了同样的问题,我发现只有在加载表单之前调用LoadMovie时,才会发生此错误。修复方法是在表单加载时添加事件,并将代码放在那里创建shockwaveflash。
就你而言:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += new System.EventHandler(this.Form_Load);
}
private void Form_Load(object sender, EventArgs e)
{
AxShockwaveFlash player = new AxShockwaveFlash();
player.CreateControl();
player.WMode = "transparent";
player.AllowScriptAccess = "sameDomain";
player.Loop = false;
player.LoadMovie(0, @"encrypt.swf");
}
}https://stackoverflow.com/questions/24571219
复制相似问题