(与dmd v2.051一起编译)
像这样的代码:
import dsfml.graphics.all;
void main()
{
while(true)
auto rect = new Image(1024, 1024);
}
一分钟内出现错误,引发异常。我猜这是由于内存泄漏造成的。
另一方面,像这样的代码会导致访问冲突和/或异常:
导入dsfml.graphics.all;
无效main()
{
自动矩形=新图像(1024,1024);
rect.dispose();
}
我实际上应该对Images和其他类似的类做什么?我想避免内存泄漏和访问冲突。
最佳答案
现在无法看代码,但我认为dispose()并非真正供公众使用。
请记住,DSFML只是CSFML的包装,而CSFML则包装了SFML。
您需要格外小心,以确保用户不会破坏任何东西。
DSFML适合正常使用,但不能处理while(true)循环等极端情况。
我已经思考了一段时间,如果转而使用基于SWIG的方法来结束这一维护噩梦会更好。这也可能使使用SFGUI之类的扩展变得更加容易。