VC6 里面 调试 不能看 变量值

ximenchuifeng 2010-07-03 04:47:02
最近学WIN32 编程, 遇到苦难时候, 断点, 调试下,但是在看 监视1 里打入要监视的东西,
等到 运行到断点处后,监视窗口里显示“CXX0017:Error:symbol “xxx”not found”竟然说我的变量没有发现,但是明明已经运行了。。。。

附上代码:
———TextView.c———————————————————————————————————

#include <windows.h>
#include "resource.h"

#define UNICODE
#define ID_SCROLL 1
HINSTANCE hInst;
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
TCHAR szAppName[16], szCaption[64], szErrMsg[64];
HWND hwnd;
MSG msg;

LoadString (hInstance, IDS_APPNAME, szAppName, sizeof (szAppName) / sizeof (TCHAR));
LoadString (hInstance, IDS_CAPTION, szCaption, sizeof (szCaption) / sizeof (TCHAR));
LoadString (hInstance, IDS_ERRMSG, szErrMsg, sizeof (szErrMsg) / sizeof (TCHAR));
WNDCLASSEX wndclassex = {0};
wndclassex.cbSize = sizeof(WNDCLASSEX);
wndclassex.style = CS_HREDRAW | CS_VREDRAW;
wndclassex.lpfnWndProc = WndProc;
wndclassex.cbClsExtra = 0;
wndclassex.cbWndExtra = 0;
wndclassex.hInstance = hInstance;
wndclassex.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE (IDI_ICON));
wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wndclassex.lpszMenuName = NULL;
wndclassex.lpszClassName = szAppName;
wndclassex.hIconSm = wndclassex.hIcon;

if (!RegisterClassEx (&wndclassex))
{
MessageBox (NULL, szErrMsg, szCaption, MB_ICONERROR);
return 0;
}
hInst = hInstance;
hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW,
szAppName,
szCaption,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);

ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

static int cxChar, cyChar, iNumLines, cyClient, iPosition;
static int xScroll;
static HWND hwndScroll;
static HGLOBAL hResource;
HDC hdc;
TCHAR * pText;
RECT rect;
PAINTSTRUCT ps;
TEXTMETRIC tm;
switch (message)
{
case WM_CREATE:
hdc = GetDC (hwnd);
GetTextMetrics (hdc, &tm);
cxChar = tm.tmAveCharWidth;
cyChar = tm.tmHeight + tm.tmExternalLeading;
ReleaseDC (hwnd, hdc);
xScroll = GetSystemMetrics (SM_CXVSCROLL);

hwndScroll = CreateWindow (TEXT("scroll"), NULL,
WS_VISIBLE | WS_CHILD | SBS_VERT,
0, 0, 0, 0, hwnd,
(HMENU) ID_SCROLL, hInst, NULL);


hResource = LoadResource (hInst,
FindResource (hInst, MAKEINTRESOURCE (IDR_TXT), TEXT("TXT")));

pText = (TCHAR *) LockResource (hResource);
iNumLines = 0;

while ( * pText != '\\' && pText != '\0')
{
if ( * pText == '\n')
{
iNumLines++;
}
pText = CharNext(pText);
}
* pText = '\0';
SetScrollRange (hwndScroll, SB_CTL, 0, iNumLines, FALSE);
SetScrollPos (hwndScroll, SB_CTL, 0, FALSE);
return (0);

case WM_SIZE:
cyClient = HIWORD (lParam);
MoveWindow (hwndScroll, LOWORD (lParam) - xScroll, 0, xScroll, cyClient, TRUE);
SetFocus (hwnd);
return (0);

case WM_SETFOCUS:
SetFocus (hwndScroll);
return (0);

case WM_VSCROLL:
switch (LOWORD (wParam))
{
case SB_TOP:
iPosition = 0;
break;
case SB_BOTTOM:
iPosition = iNumLines;
break;
case SB_LINEUP:
iPosition -= 1;
break;
case SB_LINEDOWN:
iPosition += 1;
break;
case SB_PAGEUP:
iPosition -= cyClient / cyChar;
break;
case SB_PAGEDOWN:
iPosition += cyClient / cyChar;
break;
case SB_THUMBPOSITION:
iPosition = LOWORD (lParam);
break;
}
iPosition = max (0, min (iPosition, iNumLines));
if (iPosition != GetScrollPos (hwndScroll, SB_CTL))
{
SetScrollPos (hwndScroll, SB_CTL, iPosition, TRUE);
InvalidateRect (hwndScroll, NULL, TRUE);
}
return (0);
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
pText = (TCHAR *) LockResource (hResource);
GetClientRect (hwnd, &rect);
rect.left += cxChar;
rect.top += cyChar * (1 - iPosition);

DrawText (hdc, pText, -1, &rect, DT_EXTERNALLEADING);
EndPaint (hwnd, &ps);
return (0);

case WM_DESTROY:
FreeResource (hResource);
PostQuitMessage (0);
return (0);
}
return DefWindowProc (hwnd, message, wParam, lParam);
}

--------------TXTVIEW.RC------------------------------------------------

//Microsoft Developer Studio generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Chinese (P.R.C.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END

3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END

#endif // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON ICON DISCARDABLE "icon.ico"

/////////////////////////////////////////////////////////////////////////////
//
// TXT
//

IDR_TXT TXT DISCARDABLE "xxx.txt"

/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "poepoem"
IDS_CAPTION """""Annabel Lee """" by Edgar Allan Poe"
IDS_ERRMSG "This program requires Windows NT!"
END

#endif // Chinese (P.R.C.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED



...全文
236 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
花熊 2010-07-04
  • 打赏
  • 举报
回复
Trace1/Trace2之类都可以,在release下不能调试
ximenchuifeng 2010-07-03
  • 打赏
  • 举报
回复
我了个去,我知道原因了。


比如上面那个 cxChar , 如果你输入 cx 他出现 cxChar。。

VC6不认识 大写了。。。。谁能告诉我怎么解决。。
ximenchuifeng 2010-07-03
  • 打赏
  • 举报
回复
额。。TRACE ,查到了。。。呵呵,thanks,再等等,看有没有人来回答我这个问题。。呵呵
ximenchuifeng 2010-07-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiakai1000 的回复:]

先确保打了sp6补丁,试试把鼠标指针放在变量上面能不能出现当前的值,再不行就用TRACE
[/Quote]

鼠标放在上面 有些可以显示出来。。有些不能。

TRACE 是什么,我不知道。。。我太新手了。。
jiakai1000 2010-07-03
  • 打赏
  • 举报
回复
先确保打了sp6补丁,试试把鼠标指针放在变量上面能不能出现当前的值,再不行就用TRACE
ximenchuifeng 2010-07-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tttyd 的回复:]

都提示了变量没有找到,那肯定你没有定义了。

注意变量的有效范围,和变量的大小写
[/Quote]
哎呀, 断点 段在这个 地方,比如那个 cxchar。。我在 wm_create 消息里就 看不到啊。。
真的郁闷死了。。
雪影 2010-07-03
  • 打赏
  • 举报
回复
都提示了变量没有找到,那肯定你没有定义了。

注意变量的有效范围,和变量的大小写
godlikeyou 2010-07-03
  • 打赏
  • 举报
回复
很遗憾的告诉你,VC6就这样,经常这样,我也很郁闷

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧