Проблема с _beginthreadex, используемым с классом MFC

Невозможно использовать _beginthreadex в MFC, выдавая ошибку как ошибку C3861: '_beginthreadex': идентификатор не найден. Beginthreadex работает нормально без кода MFC.

Редактировать: проблема была с последовательностью включения файла, и нужно было использовать _beginthreadex

        // EventsHandshakeDlg.cpp : implementation file
            //
            #include <crtdefs.h>
            #include <process.h>
            #include"windowsx.h"
            #include "stdafx.h"
    unsigned int __stdcall/*AFX_THREADPROC*/ /*__cdecl*/ Server(void *iData)
                {

                }
            // CEventsHandshakeDlg dialogCEventsHandshakeDlg::CEventsHandshakeDlg(CWnd* pParent /*=NULL*/)
                : CDialog(CEventsHandshakeDlg::IDD, pParent)
            {
                m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
            }
        BEGIN_MESSAGE_MAP(CEventsHandshakeDlg, CDialog)
                ON_WM_SYSCOMMAND()
                ON_WM_PAINT()
                ON_WM_QUERYDRAGICON()
                //}}AFX_MSG_MAP
                ON_BN_CLICKED(IDC_BTN_REVERSE, &CEventsHandshakeDlg::OnBnClickedBtnReverse)
            END_MESSAGE_MAP()



            // CEventsHandshakeDlg message handlers

            BOOL CEventsHandshakeDlg::OnInitDialog()
            {

                // TODO: Add extra initialization here

                return TRUE;  // return TRUE  unless you set the focus to a control
            }

          void CEventsHandshakeDlg::OnBnClickedBtnReverse()
                {unsigned int threadId = 0;
                HANDLE Thread =(HANDLE)_beginthreadex(
                    NULL,
                    NULL,
                    &/*CEventsHandshakeDlg::*/Server/*(void *iData)*/,
                    NULL,
                    0,
                    &threadId
                    );
}

1 ответ

Решение

Обычно AfxBeginThread() используется в MFC. Вы уверены, что вам нужно _beginthreadex()? Все ваши параметры кажутся значениями по умолчанию.

Вы можете проверить порядок вашего #includes и содержание stdafx.h и / или проверьте ваши каталоги включения. Вы также должны включить <process.h> после stdafx.h, Это может исправить это.

Другие вопросы по тегам