1
我使用捕捉从我CodeProject并不在64位平台上运行适当
的代码运行在32位伟大的发现了一个视频帧中的代码非托管代码,当我尝试运行问题开始在64位系统上。
引发的异常是“AccessViolationException:尝试读取或写入保护内存这往往是其他内存已损坏的指示”
我在32位和64位中的调试平台,发现那里的问题是 -
mediaType = new AMMediaType();
mediaDet.get_StreamMediaType(mediaType);
videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(mediaType.formatPtr, typeof(VideoInfoHeader));
第二行后我看着mediaType的内容,它是在64位的超过32,这会导致下一行到抛出异常完全不同的(mediaType.formatPtr具有不同的值)
我认为问题是在2个平台上的大小不同的类型“IntPtr”(4对8字节) 事情是,我不知道如何克服这个问题。
任何一种帮助会很好, 在此先感谢, Liran。
你是如何构建你的应用程序?你的目标平台是什么? – weismat 2011-05-03 09:12:19
“任何CPU”,如果我将测试项目构建为X86,它可以正常工作,但最终代码应该在64位的SharePoint平台下运行,并且我无法更改 - 我需要使其工作原样而不更改目标器平台 – liranco 2011-05-03 11:27:10