Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. loop speed

loop speed

Scheduled Pinned Locked Moved C / C++ / MFC
questionperformancetutorial
23 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L locoone

    unsigned long id; or DWORD id; either of them will give another error if i try them and i cant even come close of making since of the web page :mad: just shoot me

    K Offline
    K Offline
    khan
    wrote on last edited by
    #14

    First thing to do is Be Calm. Read some poetry. Next, declaring a variable does not give errors. Make sure you declare it: DWORD id; before CreateThread() function call. And try Rebuild All from the build menu. If that does not solve the problem, you can post the error that Visual Studio gives. this is this.

    L 1 Reply Last reply
    0
    • K khan

      First thing to do is Be Calm. Read some poetry. Next, declaring a variable does not give errors. Make sure you declare it: DWORD id; before CreateThread() function call. And try Rebuild All from the build menu. If that does not solve the problem, you can post the error that Visual Studio gives. this is this.

      L Offline
      L Offline
      locoone
      wrote on last edited by
      #15

      C:\Program Files\Microsoft Visual Studio\MyProjects\wordlist\wordlistDlg.cpp(231) : error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)' None of the functions with this name in scope match the target type DWORD id; m_bWorking = TRUE; m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); SetThreadPriority(m_hThread,THREAD_PRIORITY_LOWEST); ResumeThread(m_hThread); that was with the build all ps. i am calm lol

      K 1 Reply Last reply
      0
      • L locoone

        C:\Program Files\Microsoft Visual Studio\MyProjects\wordlist\wordlistDlg.cpp(231) : error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)' None of the functions with this name in scope match the target type DWORD id; m_bWorking = TRUE; m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); SetThreadPriority(m_hThread,THREAD_PRIORITY_LOWEST); ResumeThread(m_hThread); that was with the build all ps. i am calm lol

        K Offline
        K Offline
        khan
        wrote on last edited by
        #16

        Did you declare the Thread function in the class? It should be like this: static DWORD __stdcall Thread(LPVOID lpVoid); In the implementation file: DWORD __stdcall CMyDlg::Thread(LPVOID lpVoid) { ... And "CMyDlg" is the name of your dialog class. Change that with the real name. Hope that helps. this is this.

        L 1 Reply Last reply
        0
        • K khan

          Did you declare the Thread function in the class? It should be like this: static DWORD __stdcall Thread(LPVOID lpVoid); In the implementation file: DWORD __stdcall CMyDlg::Thread(LPVOID lpVoid) { ... And "CMyDlg" is the name of your dialog class. Change that with the real name. Hope that helps. this is this.

          L Offline
          L Offline
          locoone
          wrote on last edited by
          #17

          im so lost now i have no clue

          K 1 Reply Last reply
          0
          • L locoone

            im so lost now i have no clue

            K Offline
            K Offline
            khan
            wrote on last edited by
            #18

            Note that CMyDlg is the placeholder of your class-name. e.g, if you made a dialog-based app called Hello, then your dialog class-name will be "CHelloDlg". When you declare a function, it means go to the header file (*.h), and write the declaration line there: e.g, in HelloDlg.h: HANDLE m_hThread; bool m_bWorking; static DWORD __stdcall Thread(LPVOID lpVoid); //------------- declaration ends here. Now open the associated .cpp file e.g, HelloDlg.cpp and write the complete functions there: DWORD __stdcall CMyDlg::Thread(LPVOID lpVoid) { ..... blah blah. And be sure to read a good book on Visual C++. this is this.

            L 1 Reply Last reply
            0
            • K khan

              Note that CMyDlg is the placeholder of your class-name. e.g, if you made a dialog-based app called Hello, then your dialog class-name will be "CHelloDlg". When you declare a function, it means go to the header file (*.h), and write the declaration line there: e.g, in HelloDlg.h: HANDLE m_hThread; bool m_bWorking; static DWORD __stdcall Thread(LPVOID lpVoid); //------------- declaration ends here. Now open the associated .cpp file e.g, HelloDlg.cpp and write the complete functions there: DWORD __stdcall CMyDlg::Thread(LPVOID lpVoid) { ..... blah blah. And be sure to read a good book on Visual C++. this is this.

              L Offline
              L Offline
              locoone
              wrote on last edited by
              #19

              yea i know about the CMyDlg name i got it to not give a error when compilling but when run is a bad error but its 6 am im going to bed will post tomorrow

              1 Reply Last reply
              0
              • K khan

                I assume this is your worker function: void CMyDlg::Worker() { while (m_bWorking) { //processing here. } } In your header file: HANDLE m_hThread; bool m_bWorking; static DWORD __stdcall Thread(LPVOID lpVoid); In your .cpp file: DWORD __stdcall CMyDlg::Thread(LPVOID lpVoid) { CMyDlg* parent = (CMyDlg*)lpVoid; parent->Worker(); return 0; } void CMyDlg::OnButtonStart()//your button handler function. { m_bWorking = TRUE; m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); SetThreadPriority(m_hThread,THREAD_PRIORITY_LOWEST); ResumeThread(m_hThread); } void CMyDlg::OnButtonSuspend()//pause it { SuspendThread(m_hThread); } void CMyDlg::OnButtonResume()//resume it { ResumeThread(m_hThread); } void CMyDlg::OnButtonStop()//stop it { m_bWorking = false; } I hope that helps. this is this.

                D Offline
                D Offline
                David Crow
                wrote on last edited by
                #20

                khan++ wrote: m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); Use AfxBeginThread() with MFC applications.


                "Ideas are a dime a dozen. People who put them into action are priceless." - Unknown

                1 Reply Last reply
                0
                • L locoone

                  im a noob that is russian to me :(

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #21

                  See here and here for thread information.


                  "Ideas are a dime a dozen. People who put them into action are priceless." - Unknown

                  L 1 Reply Last reply
                  0
                  • D David Crow

                    See here and here for thread information.


                    "Ideas are a dime a dozen. People who put them into action are priceless." - Unknown

                    L Offline
                    L Offline
                    locoone
                    wrote on last edited by
                    #22

                    i narrowed it down i think. if i leave DWORD id; m_bWorking = TRUE; m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); SetThreadPriority(m_hThread,THREAD_PRIORITY_LOWEST); ResumeThread(m_hThread); like it is it errors if i //ResumeThread(m_hThread); no error but the program dont run either so im stuck again. error: debug assertion failed file: wincore.cpp line: 890 X| X| X| X|

                    D 1 Reply Last reply
                    0
                    • L locoone

                      i narrowed it down i think. if i leave DWORD id; m_bWorking = TRUE; m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); SetThreadPriority(m_hThread,THREAD_PRIORITY_LOWEST); ResumeThread(m_hThread); like it is it errors if i //ResumeThread(m_hThread); no error but the program dont run either so im stuck again. error: debug assertion failed file: wincore.cpp line: 890 X| X| X| X|

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #23

                      locoone wrote: m_hThread = CreateThread(NULL,0,Thread,this,CREATE_SUSPENDED,&id); See here.


                      "Ideas are a dime a dozen. People who put them into action are priceless." - Unknown

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups