(CPP)到底错在哪?
phpskycn2009/08/08软件综合 IP:浙江
这个函数,功能是检测(400,300)是的B值是否小于100
// palette
void palette(){
    double x ;
    double y = 300;
    double x1 = 400;
    double x2 = 400;
    COLORREF color;
    HDC hDC = ::GetDC(NULL);
    color = ::GetPixel(hDC, 400, 300);
    if((GetBValue(color))<100){
        while( (::GetPixel(hDC, x1, 300))<100){
            x1++;
        }
        while( (::GetPixel(hDC, x2, 300))<100){
            x2--;
        }
            x=x1/2+x2/2;
    while((::GetPixel(hDC, x, y))){
        y++;
    }}
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (x-1), (y-1), 0, 0);
    return;
}


可是在屏幕几乎全白的情况下,一执行它,就会不停地把鼠标移到屏幕左上方
问题到底出在哪里???
来自:计算机科学 / 软件综合
12
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
93°
14年10个月前 IP:未同步
138006
接分升星
+1
科创币
phpskycn
2009-08-08
回答不得分
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138008
稍稍改了下
// palette
void palette(){
    double x;
    double y = 300;
    double x1 = 400;
    double x2 = 400;
    COLORREF color;
    HDC hDC = ::GetDC(NULL);
    color = ::GetPixel(hDC, 400, 300);
    if((GetBValue(color))<100){
        while( (::GetPixel(hDC, x1, 300))<100){
            x1++;
        }
        while( (::GetPixel(hDC, x2, 300))<100){
            x2--;
        }
            x=(x1)/2+(x2)/2;
    while((::GetPixel(hDC, x, y))){
        y++;
    }}
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (x-1), (y-1), 0, 0);
    return;
}
编译通过,运行直接报错(变量x未定义)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138009
“CFGS.exe”: 已加载“C:\\William\\Visual studio\\CFGS\\debug\\CFGS.exe”,已加载符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\ntdll.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\kernel32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\user32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\gdi32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\comdlg32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\shlwapi.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\advapi32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\rpcrt4.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\secur32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\msvcrt.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\WinSxS\\x86_XXXXXXXXXXXXXXXXXXXXXmon-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\\comctl32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\shell32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\winspool.drv”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\oledlg.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\ole32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\oleaut32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\imm32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\lpk.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\usp10.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\Program Files\\Kaspersky Lab\\Kaspersky Internet Security 2009\\mzvkbd.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\psapi.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\Program Files\\Kaspersky Lab\\Kaspersky Internet Security 2009\\mzvkbd3.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\Program Files\\Kaspersky Lab\\Kaspersky Internet Security 2009\\adialhk.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\Program Files\\Kaspersky Lab\\Kaspersky Internet Security 2009\\kloehk.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\uxtheme.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\Program Files\\360safe\\safemon\\safemon.dll”,未使用调试信息生成二进制文件。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\wininet.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\crypt32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\msasn1.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\ws2_32.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\ws2help.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\version.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\urlmon.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\msctf.dll”,未加载任何符号。
“CFGS.exe”: 已加载“C:\\WINDOWS\\system32\\XXXXXXXXXXXe”,未加载任何符号。
Run-Time Check Failure #3 - The variable 'x' is being used without being defined.
程序“[3936] CFGS.exe: 本机”已退出,返回值为 0 (0x0)。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年10个月前 IP:未同步
138011
这个程序是C系语言,对我来说很难看懂,不过也好,发现不了你的错误
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138012
Visual C++8.0 without SP1的BUG:
有时候使用未定义的变量编译能通过
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年10个月前 IP:未同步
138013
在CSDN中,最多的帖子莫过于 “jf” & “接分升星”

LZ要干啥,条例难懂,直接说要干啥好了 = =
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年10个月前 IP:未同步
138016
注释掉 mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (x-1), (y-1), 0, 0); 这句  就可以了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138017
引用第7楼我说要有光于2009-08-08 12:31发表的  :
注释掉 mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (x-1), (y-1), 0, 0); 这句  就可以了

So beautiful
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138018
引用第6楼破93于2009-08-08 12:28发表的  :
在CSDN中,最多的帖子莫过于 “jf” & “接分升星”

LZ要干啥,条例难懂,直接说要干啥好了 = =

我只想知道问题出在哪
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年10个月前 IP:未同步
138020
问题出在,这代码写得非常乱
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138021
传上来,让大家体验下
…………
attachment icon CFGS.rar 531.58KB RAR 14次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年10个月前 IP:未同步
138022
整篇:
// CFGSDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "CFGS.h"
#include "CFGSDlg.h"

//=======================================================================================

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// palette
void palette(){
    double x =400;
    double y = 300;
    double x1 = 400;
    double x2 = 400;
    COLORREF color;
    HDC hDC = ::GetDC(NULL);
    color = ::GetPixel(hDC, 400, 300);
    if((GetBValue(color))<100){
        while( (::GetPixel(hDC, x1, 300))<100){
            x1++;
        }
        while( (::GetPixel(hDC, x2, 300))<100){
            x2--;
        }
            x=(x1)/2+(x2)/2;
    while((::GetPixel(hDC, x, y))){
        y++;
    }}
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (x-1), (y-1), 0, 0);
    return;
}


// 用于应用程序“关于”菜单项的 CAboutDlg 对话框

class CAboutDlg : public CDialog
{
public:
    CAboutDlg();

// 对话框数据
    enum { IDD = IDD_ABOUTBOX };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

// 实现
protected:
    DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg:[s:3]oDataExchange(CDataExchange* pDX)
{
    CDialog:[s:3]oDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()


// CCFGSDlg 对话框




CCFGSDlg::CCFGSDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CCFGSDlg::IDD, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCFGSDlg:[s:3]oDataExchange(CDataExchange* pDX)
{
    CDialog:[s:3]oDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CCFGSDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()

    //}}AFX_MSG_MAP
    ON_BN_CLICKED(IDOK, &CCFGSDlg::OnBnClickedOk)
    ON_WM_TIMER()
    ON_BN_CLICKED(IDOK2, &CCFGSDlg::OnBnClickedOk2)
END_MESSAGE_MAP()


// CCFGSDlg 消息处理程序

BOOL CCFGSDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // 将“关于...”菜单项添加到系统菜单中。

    // IDM_ABOUTBOX 必须在系统命令范围内。
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!XXXXXXXXXXXXXXXEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }

    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);            // 设置大图标
    SetIcon(m_hIcon, FALSE);        // 设置小图标

    // TODO: 在此添加额外的初始化代码

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

void CCFGSDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
        CAboutDlg dlgAbout;
        XXXXXXXXXXXModal();
    }
    else
    {
        CDialog::OnSysCommand(nID, lParam);
    }
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。

void CCFGSDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // 用于绘制的设备上下文

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(XXXXXtSafeHdc()), 0);

        // 使图标在工作矩形中居中
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // 绘制图标
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
//
HCURSOR CCFGSDlg::OnQueryDragIcon()
{
    return static_cast<HCURSOR>(m_hIcon);
}


void CCFGSDlg::OnBnClickedOk()
{
    CWnd::SetTimer(731,20,NULL);
        AfxMessageBox(L"程序已经启动!");
    // OnOK();
}

void CCFGSDlg::OnTimer(UINT_PTR nIDEvent)
{
    palette();
    CDialog::OnTimer(nIDEvent);

}

void CCFGSDlg::OnBnClickedOk2()
{
    CWnd::KillTimer(731);
    AfxMessageBox(L"程序已经停止运行!");
}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
phpskycn
专家 老干部 学者 机友 笔友
文章
402
回复
4591
学术分
8
2009/03/15注册,10天22时前活动

CV

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}