能力值:
(RANK:410 )
|
-
-
2 楼
/* 全局变量 */
HWND ahWnd[256];
int i;
BOOL CALLBACK EnumWindowProc(HWND hWnd, LPARAM lParam)
{
if (hWnd)
{
ahWnd[i] = hWnd;
i++;
return TRUE;
}else
return FALSE;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢 小虾版主...非常感谢!~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
既然是在用C++,那尽量不要用全局变量吧。
还是吧HWND ahWnd[256]; int i; 封装到自定义结构体中,通过LPARAM lParam参数传递比较好。
既然是用C++了,我觉得用标准C++库的类比如vector来代替数组比较好。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
HWND aHwnd[256];
int i;
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
if (hwnd)
{
aHwnd[i]=hwnd;
printf("%d\n",aHwnd[i]);
i++;
return TRUE;
}else
{
return FALSE;
}
}
::EnumWindows((WNDENUMPROC)EnumWindowsProc,0);
--------------------Configuration: hwnd - Win32 Debug--------------------
Compiling...
hwnd.cpp
C:\Documents and Settings\cd\桌面\C++\hwnd\hwnd.cpp(5) : error C2146: syntax error : missing ';' before identifier 'aHwnd'
C:\Documents and Settings\cd\桌面\C++\hwnd\hwnd.cpp(5) : error C2501: 'HWND' : missing storage-class or type specifiers
C:\Documents and Settings\cd\桌面\C++\hwnd\hwnd.cpp(5) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
hwnd.exe - 3 error(s), 0 warning(s)
求版主和各位大大再帮帮忙。。。。
|
能力值:
(RANK:410 )
|
-
-
6 楼
你没有包含#include <windows.h>文件?
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#pragma comment(lib,"user32.lib");
HWND g_ahWnd[256];
int i;
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
if (hWnd)
{
g_ahWnd[i] = hWnd;
printf("%08X\n",g_ahWnd[i]);
i++;
return TRUE;
}else
return FALSE;
}
int main()
{
EnumWindows(&EnumWindowsProc,0);
system("pause");
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
小虾版主。。。。为什么在 Debug 调试模式会出现一个错误 而Release 却不会?
#include <stdio.h>
#include <windows.h>
HWND *aHwnd=new HWND[256];
int i=1;
char *tit=new char[256];
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
if (hwnd)
{
aHwnd[i]=hwnd;
GetWindowTextA(aHwnd[i],(LPSTR)tit,255);
printf("%d: %s\n",aHwnd[i],tit);
i++;
return TRUE;
}else
{
delete tit;
delete aHwnd;
return FALSE;
}
}
int main()
{
::EnumWindows((WNDENUMPROC)EnumWindowsProc,0);
delete aHwnd;
delete tit;
return 0;
}
|
能力值:
(RANK:410 )
|
-
-
8 楼
将你的代码调试了一下,没发现什么错误。你的错误代码发上来看一看?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
--------------------Configuration: hwnd - Win32 Debug--------------------
hwnd.exe - 0 error(s), 0 warning(s)
编译时没有错误,但是运行的时候却出现错误,Release模式没有这个问题。
谢谢小虾版主的热心指导。
|
能力值:
( LV15,RANK:2459 )
|
-
-
10 楼
256个太小了吧,估计是会越界的
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
恩...谢谢 果然是数组越界 定义HWND *ahwnd=new HWND[1000]; 就没有问题了
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
[QUOTE=cxd;426326]既然是在用C++,那尽量不要用全局变量吧。
还是吧HWND ahWnd[256]; int i; 封装到自定义结构体中,通过LPARAM lParam参数传递比较好。
既然是用C++了,我觉得用标准C++库的类比如vector来代替数组比较好。[/QUOTE] 我也这么认为,调用灵活好的 我的网站关于CSP的打算开始开张了请多多捧场呀
|
|
|