读书人

vs2008 c++编译有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

vs2008 c++编译问题
我有一个编译问题
我在mfc 的一个程序汇总,添加了一个static的单击事件
在这个事件中调用了一个函数

MapEditCtl mec;

mec.doGetSRay((int)pt.x,(int)pt.y);
我在一个cpp文件中定义了这个函数;

void MapEditCtl::doGetSRay(int x ,int y)
{
D3DVIEWPORT9 viewport;
device->GetViewport(&viewport);

D3DXMATRIX proj_matrix;
device->GetTransform(D3DTS_PROJECTION, &proj_matrix);

float px = ((( 2.0f * x) / viewport.Width) - 1.0f) / proj_matrix(0, 0);
float py = (((-2.0f * y) / viewport.Height) + 1.0f) / proj_matrix(1, 1);

SRay ray;
ray.origin = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
ray.direction = D3DXVECTOR3(px, py, 1.0f);

//return ;


}

但是我在实际运行的时候,当运行到mec.doGetSRay((int)pt.x,(int)pt.y);
这一句话的时候逐语句调试根本不能进入我的函数,直接就过去了,而且是在release 方式下不行,在debug方式下没有问题,在debug方式下可以进入函数并且很好的执行。
我在release 方式下直接把断点打在我的函数上。结果提示我不能进入当前的代码。
不知道是为什么,请大家给我指点下, 谢谢


[解决办法]
release的但不得不到正确结果,因为代码优化了可能和你原来的结构完全不同

读书人网 >C++

热点推荐