首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS2005编译的程序,release停,直接运行崩溃,F5运行正常

2013-08-04 
VS2005编译的程序,release下,直接运行崩溃,F5运行正常是directx程序debug下,不论是F5,还是直接运行都是正

VS2005编译的程序,release下,直接运行崩溃,F5运行正常
是directx程序

debug下,不论是F5,还是直接运行都是正常的。

不论是多线程MD,还是MT,也都是这样。

重建了新工程,也依然是这个情况,只有release出来的程序,直接运行会出错。

下面是出错部分的代码

if( SUCCEEDED( InitD3D( hWnd , wc.hInstance) ) )
{
if( SUCCEEDED( InitGeometry() ) )
{
 //直接运行时,发现,从这里开始就执行不下去了,hWnd是正常的。
                        ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
static float f_last_time  = (float)::timeGetTime();
static float f_time  = (float)::timeGetTime();
static float f_time_delta = 0.0f;
f_time  = (float)::timeGetTime();
f_time_delta = (f_time - f_last_time) / 1000.0f;
f_last_time  = f_time;
Frame(f_time_delta);
Render(f_time_delta);
}
}
}
} Visual?Studio?2005 3D DirectX
[解决办法]
有没有自定义消息,检查消息处理函数是否标准(必须两个参数,一个WPARAM,一个LPARAM)
[解决办法]
可能不是错在这里,有可能是其它地方的错误,比如某处内存分配过小,但你放的内容过大,虽然可能放进去的当时没报错,其它地方在用到相应的内存段时就会出现崩溃的现象。最好是仔细看看,可以先把一些程序段return掉,一段一段的排查,记得要用release,或者多做日志。
[解决办法]
debug跟release设置不同吧,或者是release目录下缺少相应的dll文件导致?
[解决办法]
debug可以跑 release不行 还有情况是因为 变量未初始化

热点排行