#1 |
参数错误?
|
#2 |
可能是数据的问题,你对照每一项值是不是都对了
|
#3 |
不是参数问题 应该是内存释放问题 我不知道该怎么处理
|
#4 |
回复1楼: 不是参数问题 应该是内存释放问题 我不知道该怎么处理 |
#5 |
回复4楼: 你是调用别人的接口嘛? 这个错误一般的原因是因为 参数传入错误而引起的···· |
#6 |
回复5楼: 调用的别人的接口,做的三维图的渲染 |
#7 |
回复6楼: 仔细检查你的参数 |
#8 |
是不是前面调试的时候没有释放内存引起的.
在编写非托管代码,或者调用一些外部处理,引擎处理时请记得dispose |
#9 |
这种情况下重启一下电脑看看先
|
#10 |
回复9楼: 就是有时候报错 有时候好的 |
#11 |
回复8楼: dispose 放哪里 |
#12 |
回复11楼: 你的类继承IDispose,重写Dispose方法就可以了,这个方法里面用于清理内存,这个可以去参考一下微软帮助里面.比如关闭数据库连接等操作. |
#13 |
回复11楼: dispose用要类继承IDisposable接口的吧 这里没有 |
#14 |
确保当前的文件未被占用
|
#15 |
如果不是每次报错,
出错可能是相应的非托管对象被释放了,导致读取非法的地址 再找dll的开发人员咨询下,调用顺序或者其他的注意事项 |
20分
#16 |
呵呵,调用非托管代码,这是常见问题,见怪不怪。
同意 #15 楼的解决办法。懒得管这种事情,最好把问题推回给提供 dll 的那些“人员”。他们有本事提供 dll,没本事提供一个符合 .net 调用惯例的 dll,实在是拿他们没有办法。 忠告:不要调用这类 dll。你应让对方提供.net托管类库,然后用 c# 程序反复、改变方式测试几万次,证明确实不会出现此类问题才用。如果你不能坚持这个原则,你去调用对方不靠谱的非托管dll库,层出不穷的“内存被释放、非法使用地址”的问题是必然的。 |
#17 |
回复8楼: 不是你没有释放什么东西,是什么东西根本就提前释放了。比如说原本只能是 static 定义的东西,变为局部的了。 调用 c++ 编译的类库之类的东西,是件很垃圾的事情。过去我们的应用系统是c#开发的,然后一个“安全系统”是汇编和c++开发的(因为有 ring-0 级程序,也有用户程序)。花了500万也没有搞定产品质量。后来我决定要求c++开发部门必须提供托管代码.net类库,不能让应用程序开发者去直接调用c++类库,于是花了1万块钱就搞定产品质量了。 |
#18 |
回复17楼: 对提前释放更容易出错. |
#19 |
回复14楼: 应该是的 |