前几天学习的时候都正常的 突然有一天 出现以下问题:
如图
1、项目编译没问题,不调试直接运行也可以运行,生成的exe也是可以跑的。
2、但是点F5调试的时候就出现这问题,点两下继续就可以运行。
3、对项目倒是暂时没发现有什么影响,但是我想用LOG查找问题的时候就不行了,就等于没法调试,日志输出窗口都没有。
4、跟项目没关系,重新建了个helloworld新项目还是有这问题,其他所有项目也一样。
vs2012 cocos2dx 2.2 2.2.5 3.0 3.2都试过。一样问题
如果点中断 断点在 CCEGLView.cpp 中的 CCEGLView::Create函数里
bool bRet = false;
do
{
CC_BREAK_IF(m_hWnd);
HINSTANCE ss_hInstance = GetModuleHandle( NULL );
WNDCLASS wc; // Windows Class Structure
// Redraw On Size, And Own DC For Window.
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.lpfnWndProc = _WindowProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = ss_hInstance; // Set The Instance
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); // Load The Default Icon
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
wc.lpszMenuName = m_menu; //
wc.lpszClassName = kWindowClassName; // Set The Class Name
CC_BREAK_IF(! RegisterClass(&wc) && 1410 != GetLastError());
// center window position
RECT rcDesktop;
GetWindowRect(GetDesktopWindow(), &rcDesktop);
WCHAR wszBuf = {0};
MultiByteToWideChar(CP_UTF8, 0, m_szViewName, -1, wszBuf, sizeof(wszBuf));
// create window
m_hWnd = CreateWindowEx(
WS_EX_APPWINDOW | WS_EX_WINDOWEDGE, // Extended Style For The Window
kWindowClassName, // Class Name
wszBuf, // Window Title
WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX, // Defined Window Style
0, 0, // Window Position
//TODO: Initializing width with a large value to avoid getting a wrong client area by 'GetClientRect' function.
1000, // Window Width
1000, // Window Height
NULL, // No Parent Window
NULL, // No Menu
ss_hInstance, // Instance
NULL ); //光标在这行前
CC_BREAK_IF(!m_hWnd);
bRet = initGL();
if(!bRet) destroyGL();
CC_BREAK_IF(!bRet);
s_pMainWindow = this;
bRet = true;
} while (0);
就没人遇到过相同问题的么
将函数调用堆栈贴出来看一下。
按过程调试的时候 断点在 main.cpp 里的CCEGLView* eglView = CCEGLView::sharedOpenGLView();
然后进去看就是在CCEGLView.cpp里的 Create函数 我在二楼发的
和同事看了下,这个问题和你的VS环境关系比较紧密。错误比较诡异。
有几点你试一下:
1.在错误的地方后面打个GetLastError()看下是否有错误返回代码。
2.我的疑问:VS2012,说明环境至少是win7以上,但是你的第一个贴图怎么感觉是xp的主题?
3.createWindowsEx只会执行一次,印证了你说的:点两下就可以继续运行,那应该是不会对接下来的log之类的东西产生影响。还是说会继续崩?
4.试着给VS打上该有的补丁。
5.下下策:重装下vs。
先谢谢。
1:看下面的图,出错那个箭头在函数参数括号里面,不好加你说的GetLastError,如果加整个语句前或者后面,还是不变,没影响。
2:这个只是个主题,有次改成经典模式,懒得该回来而已,系统是WIN7 64位。
3:点两下继续不会继续崩,但是相当于直接点了 不调试的执行(CTRL+F5),日志窗口是没有的。
4:VS扩展和更新里除了一些其他的插件没有要更新的东西
5:重装过好多遍的,而且 貌似跟vs版本也没啥关系。
ps:我那时候刚开始学习的时候,电脑里vs08 10 12 cocos2dx 2.2.5 3.2都有 刚开始还是没这个问题的,有一次写好一个项目突然出现的,不知道是不是跟升成的pdb,dll这些文件有关系啊,不是太懂。
监视里面输入this 看看
楼主解决了没有,同样遇到这个问题!!!!!!!!!!!!!!