我对删除指针的问题感到有些愚蠢,但我需要确保以正确的方式删除,因为我正在进行程序的调试过程.
基本上我有几个指针数组,在我的头文件中定义如下:
AsteroidView *_asteroidView[16];
Run Code Online (Sandbox Code Playgroud)
在for循环中,我然后初始化它们:
for(int i = 0; i < 16; i++)
{
_asteroidView[i] = new AsteroidView();
}
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止一切顺利,一切正常.当我最终需要在析构函数中删除这些时,我使用以下代码:
for(int i = 0; i < 16; i++)
{
delete _asteroidView[i];
}
Run Code Online (Sandbox Code Playgroud)
这就是我需要做的吗?我觉得它是,但我担心内存泄漏.
出于兴趣......点对象数组与对象数组相比有多大区别?
好的,我有一个使用C++ DLL的C#用户界面.DLL实际上是一个OpenGL/SDL游戏.一旦游戏结束,它就会回到C#UI.这一切都很好,据我所知,正确.
当我尝试退出实际程序时出现问题.C#表单关闭,但很快就会出现错误,这非常不合情理.我假设它与DLL有关,也许它仍然是开放的?如何确保DLL已正确关闭?或者你如何一起关闭它?
我打开DLL如下:
[DllImport("AsteroidGame.dll")]
public static extern int EntryPoint();
private void rungame()
{
EntryPoint();
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑
错误只是说:
vshost32.exe已停止工作
我有一个游戏有不同的游戏类型,即计时赛,无限游戏等.
每种游戏类型都有不同的时间规则和潜在的碰撞规则.显然,在时间试验中,当时间耗尽时游戏结束.
我目前正在通过'硬编码'将它们添加到程序中来添加游戏类型,因此每次我想添加新游戏类型时我都必须重新编译整个程序.
基本上,为了使添加游戏类型更容易,我不想重新编译所有内容.因此,潜在的新游戏类型可以是可下载的内容,并且只需将新类型放入游戏文件夹即可.
怎么会这样做呢?我假设它是使用libs或dll或其他东西(我对此知之甚少,所以我可能完全不正确).
我希望一切都有道理,我希望你们可以帮助我,或者至少让我指向解释这种方法的书或文章的方向.
提前致谢.