
c语言中赋值语句拼不过for语句的问题??
用c语言做SDK批处理项目,想通过找寻屏幕某一区块的颜色值确定一个坐标点,语句如下:intzuobiao[2];intx=753;inty=100;COLORREFdia...
用c语言做SDK批处理项目,想通过找寻屏幕某一区块的颜色值确定一个坐标点,语句如下:
int zuobiao[2];
int x=753;
int y=100;
COLORREF dian;
COLORREF dian2;
dian2=RGB(31,202,192);
for(int i=0;i<30;i++,x++,y=100)
{
for(int i=0;i<30;i++,y++)
{
dian=GetPixel(GetDC(0), x, y);
if(dian==dian2)
{zuobiao[0]=x;zuobiao[1]=y;goto LOOP;}
}
}
LOOP: return 1;
}
这段代码功能是找寻屏幕上某块区域的某个坐标点,并把坐标点的x和y坐标传给数组元素zuobiao[0]和zuobiao[1],试验了很多次,如果将zuobiao[0]=x;zuobiao[1]=y;这段代码用goto 语句放到forz循环外面去执行就可以成功赋值,那为什么放在for循环里面则没法赋值呢?郁闷,恳求行家指点啊!(我没多少分了)!! 展开
int zuobiao[2];
int x=753;
int y=100;
COLORREF dian;
COLORREF dian2;
dian2=RGB(31,202,192);
for(int i=0;i<30;i++,x++,y=100)
{
for(int i=0;i<30;i++,y++)
{
dian=GetPixel(GetDC(0), x, y);
if(dian==dian2)
{zuobiao[0]=x;zuobiao[1]=y;goto LOOP;}
}
}
LOOP: return 1;
}
这段代码功能是找寻屏幕上某块区域的某个坐标点,并把坐标点的x和y坐标传给数组元素zuobiao[0]和zuobiao[1],试验了很多次,如果将zuobiao[0]=x;zuobiao[1]=y;这段代码用goto 语句放到forz循环外面去执行就可以成功赋值,那为什么放在for循环里面则没法赋值呢?郁闷,恳求行家指点啊!(我没多少分了)!! 展开
展开全部
放到外面能成功?
你确认条件(dian == dian2)有成立的时候?
加个断点跟踪一下吧
BTW,你的代码真的惊天地,泣鬼神
1. 那么多字母,你干吗就跟一个i过不去呢
2. for的表达式写那么复杂干吗呢
你确认条件(dian == dian2)有成立的时候?
加个断点跟踪一下吧
BTW,你的代码真的惊天地,泣鬼神
1. 那么多字母,你干吗就跟一个i过不去呢
2. for的表达式写那么复杂干吗呢
更多追问追答
追问
恩,我确认是成功的,我之前做了一个显示屏幕某点坐标和RGB颜色值的的小软件,然后再通过这个软件才精确确定了dian2=RGB(31,202,192);这行代码。把zuobiao[0]=x;zuobiao[1]=y放到外面是真的能成功的。。。for 的意思是在屏幕30*30的区域内找符合dian2的数值。
追答
从代码上确实没看出来问题
在你测试dian == dian2的地方,
把你的30 x 30范围内的所有RGB打印出来,
看是否存在与你条件符合的点
然后再进一步分析
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询