相关疑难解决方法(0)

如何使用Win32 API创建线程?

我编写了一个带有Win32 API和C++的TCP服务器,但它是单线程的.任何人都可以告诉我,我将如何使其多线程?我想,对于每个新接受的连接,我都必须生成一个处理它的线程.但我从来没有在Win32中使用线程的经验.谁能告诉我如何使用Win32和C++进行线程编程?

c++ winapi multithreading

8
推荐指数
1
解决办法
2万
查看次数

致命错误C1004:发现意外的文件结尾

我得到上面的错误信息(我用谷歌搜索,发现与缺少大括号或其他东西有关),但是,我看不到这个缺少的括号在哪里?

#include "stdafx.h"
#include <Windows.h>
#include <iostream>
using namespace std;

    class Something{


        static DWORD WINAPI thread_func(LPVOID lpParameter)
        {
            thread_data *td = (thread_data*)lpParameter;
            cout << "thread with id = " << td->m_id << endl;
            return 0;
        }


        int main()
        {
            for (int i=0; i< 10; i++)
            {
                CreateThread(NULL, 0, thread_func, new thread_data(i) , 0, 0);
            }

            int a;

            cin >> a;
        }

        struct thread_data
        {
            int m_id;
            thread_data(int id) : m_id(id) {}
        };

    }
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++

7
推荐指数
2
解决办法
3万
查看次数

在c ++中运行类成员函数的线程

正如标题所说.以下是我的代码框架.

class CLASS
{
public:
    void A();
private:
    DWORD WINAPI B(LPVOID);
};

void CLASS::A()
{
    DWORD (WINAPI CLASS::*thread)(LPVOID) = &CLASS::B;
    ...
    CreateThread(NULL, 0, thread, &arg, 0, NULL);
    ...
}
Run Code Online (Sandbox Code Playgroud)

函数B需要CLASS的成员变量.
但是当我编译它时,我有一个错误代码.
它"无法将参数3从'DWORD(__ stdcall CLASS ::*)(LPVOID)'转换为'LPTHREAD_START_ROUTINE'"或类似的东西.
我不知道英语环境是否相同.

有人可以帮忙吗?

c++ multithreading class

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×3

multithreading ×2

class ×1

visual-c++ ×1

winapi ×1