问题描述
AVCodecContextavcodec_context=newAVCodecContext();pHandle.c=Marshal.AllocHGlobal(Marshal.SizeOf(avcodec_context));pHandle.c=avcodec_alloc_context3(refpHandle.codec);avcodec_context=(AVCodecContext)Marshal.PtrToStructure(pHandle.c,typeof(AVCodecContext));代码如上,当运行到最后一句时,说传递给运行时且要转换为委托的函数指针无效,这是怎么回事啊,求大神解答!!!!
解决方案
解决方案二:
引用楼主pianquanx43232的回复:
传递给运行时且要转换为委托的函数指针无效
你确定是最后一句?
解决方案三:
引用1楼shingoscar的回复:
Quote: 引用楼主pianquanx43232的回复:
传递给运行时且要转换为委托的函数指针无效你确定是最后一句?
就是最后一句啊,我打算把那个phandle.c里面的内容拷贝到avcodec_context这个结构体里去,就是怎么都不行
解决方案四:
PtrToStructure和什么委托啊、函数指针啊根本就没关系如果是GetDelegateForFunctionPointer还说的过去能截张异常时候的图吗?
解决方案五:
那我怎么样才能把intptr里面的内容拷贝到结构体里去呢
解决方案六:
引用3楼shingoscar的回复:
PtrToStructure和什么委托啊、函数指针啊根本就没关系如果是GetDelegateForFunctionPointer还说的过去能截张异常时候的图吗?
那我怎么样才能把intptr里面的内容拷贝到结构体里去呢
解决方案七:
首先3014行是多余的目测你的错误应该发生在3015,引起了内存错乱,我估计这个函数调用的时候不应该有ref
解决方案八:
引用6楼shingoscar的回复:
首先3014行是多余的目测你的错误应该发生在3015,引起了内存错乱,我估计这个函数调用的时候不应该有ref
3015的内容是调用c++的dll,如果不加ref的话它也会报一样的错误
解决方案九:
弱弱的问一句结构体struct是可以用new的吗?。。你确定哪里是结构体?。。。
解决方案十:
引用8楼crystal_lz的回复:
弱弱的问一句结构体struct是可以用new的吗?。。你确定哪里是结构体?。。。
好吧我说错了结构是不能赋值为null的搞混了。。。百分之80的可能性在3015上
解决方案十一:
引用9楼crystal_lz的回复:
Quote: 引用8楼crystal_lz的回复:
弱弱的问一句结构体struct是可以用new的吗?。。你确定哪里是结构体?。。。好吧我说错了结构是不能赋值为null的搞混了。。。百分之80的可能性在3015上
你从pHandle.c用Marshal.Copy拷贝一些数据到Byte[]里面去试试看看能否拷贝成功如果成功你看看那些byte[]的数据是不是符合你结构体的数据?。。。。
解决方案十二:
引用10楼crystal_lz的回复:
Quote: 引用9楼crystal_lz的回复:
Quote: 引用8楼crystal_lz的回复:
弱弱的问一句结构体struct是可以用new的吗?。。你确定哪里是结构体?。。。好吧我说错了结构是不能赋值为null的搞混了。。。百分之80的可能性在3015上
你从pHandle.c用Marshal.Copy拷贝一些数据到Byte[]里面去试试看看能否拷贝成功如果成功你看看那些byte[]的数据是不是符合你结构体的数据?。。。。
刚才又运行一遍出现了这个,有认识的吗
解决方案十三:
为毛不用MMPEG的C#版本的。。。或用AForge的MMPEG..
解决方案十四:
引用12楼wyd1520的回复:
为毛不用MMPEG的C#版本的。。。或用AForge的MMPEG..
有那个版本的吗,能不能给个链接啊
解决方案十五:
http://www.aforgenet.com/aforge/framework/这个呀这个是很稳定的。
解决方案:
楼主解决了么....我也是啊,有时候能正常读取有时候说指针无效,好懵逼