小编Chi*_*eno的帖子

我如何在同一个类(C++,MFC)中调用工作线程?

这是我的代码,其中包含错误:

void ClassA::init()
{
    HANDLE hThread;
    data thread;          // "thread" is an object of struct data

    hThread = CreateThread(NULL, 0, C1::threadfn, &thread, 0, NULL);
}

DWORD WINAPI ClassA::threadfn(LPVOID lpParam)
{   
    data *lpData = (data*)lpParam;
}
Run Code Online (Sandbox Code Playgroud)

错误:

error C3867: 'ClassA::threadfn': function call missing argument list; use '&ClassA::threadfn' to create a pointer to member
Run Code Online (Sandbox Code Playgroud)

使工作线程在单个类中工作的正确方法是什么?

c++ mfc

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

关于类对象

我有一个关于类对象的非常基本的问题.创建类之后,我们需要创建一个类对象.在这一点上,我有点困惑,无论是*objectobject.例:

  • CClass object
  • CClass *object

它们两者有什么区别?要访问类功能,我需要使用点'.'和箭头'->'.我知道用于访问类函数的点和箭头,但是点和箭头的重要意义是什么?

c++

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

这是什么意思?

码:

void *buff; 
char *r_buff = (char *)buff;
Run Code Online (Sandbox Code Playgroud)

我无法理解类型铸造buff.请帮忙.

谢谢.

c++

2
推荐指数
2
解决办法
1429
查看次数

问题:如何在C++ MFC中将CString转换为const char*

如何将CString转换为const char*?我已经尝试了在互联网上找到的所有东西,但我仍然无法转换它们.

请帮忙.

谢谢.

c++ mfc visual-c++

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

在c ++中访问和修改线程数据问题

我有问题访问和修改我的多线程数据.有没有正确的方法来做到这一点?

这是我的完整代码:

#include <stdio.h>
#include <windows.h>

// Create thread data structure
struct data
{
    int a;
    float b;
    char *c;
};

DWORD WINAPI threadfn(LPVOID lpParam)
{   
    printf("Address of thread data:\n");

    for(int i=0; i<sizeof(lpParam); i++)
        printf("%X\n", (int*)lpParam + i);

    // Print out initial values
    printf("\nInitial values:\n");
    printf("a: %d\n", *((int*)lpParam));
    printf("b: %.2f\n", *((float*)lpParam + 1));
    printf("c: %s\n", *((int*)lpParam + 2));

    // Modify thread data values
    *(int*)lpParam = 200;
    *((float*)lpParam + 1) = 25.80;
    *((char*)lpParam + 2) = "Es la una";

    return 0; …
Run Code Online (Sandbox Code Playgroud)

c++ windows multithreading

1
推荐指数
1
解决办法
695
查看次数

如何一次生成一个随机数?

我想一次创建3个随机数(同时).但是,即使它们实际上是随机的,它们一次返回相同的数字.例:

------------------------
Variable:   A   B   C
------------------------
Time 1  :   5   5   5
Time 2  :   3   3   3
Time 3  :   9   9   9
------------------------
Run Code Online (Sandbox Code Playgroud)

他们认为根本就是不同的数字.根据观察,我可以看到我的代码一次只能选择一个随机数(间隔1秒).这是我正在使用的生成器代码:

unsigned int CMain::GenerateRandom(int min, int max)
{
    srand((unsigned)time(0)); 
    unsigned int random_integer; 
    int lowest = min, highest = max; 
    int range = (highest - lowest) + 1;

    random_integer = lowest + int(range * rand() / (RAND_MAX + 1.0));

    return random_integer;
}
Run Code Online (Sandbox Code Playgroud)

我怎么能一次生成一个完全随机的数字?请帮忙.

谢谢.

c++

1
推荐指数
1
解决办法
2627
查看次数

如何制作多客户端UDP服务器

我想实现一个UDP服务器,它只使用一个端口(端口:6516),但可以处理来自多个客户端的多个数据包.我被告知要创建一个监听套接字,但我无法理解.据我所知,只有TCP可以执行监听事件.

有人能告诉我正确有效的方法来达到这种目的吗?我一直在搜索整个互联网,但最终我还没有明白我的想法.非常感谢工作步骤(对于服务器和客户端).

谢谢.

c++ mfc udp

0
推荐指数
1
解决办法
2682
查看次数

C++:fread()导致断言错误?

我有一个错误原因fread(),它说:

File: f:\ dd\vctools\ crt_bld\ self_x86\ crt\ src\fread.c
Line: 102
Expression: (stream != NULL)
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我已经加入<stdio.h>了我的计划.我目前正在使用Visual C++ MFC开发我的项目.

c++

0
推荐指数
1
解决办法
4285
查看次数

线程和结构通信

我正在做一个项目,要求我接收来自许多发件人的消息.我的recv服务器使用线程recv在UDP协议下连续数据.我struct BufferData在头文件中调用了一个结构来组织我从客户端收到的缓冲区.这是我的struct样子:

struct BufferData
{
    char Buffer1[BYTES];
    char Buffer2[BYTES];
    char Buffer3[BYTES];
    char MixedBuffer1[BYTES];
    char MixedBuffer2[BYTES];
    char MixedBuffer3[BYTES];
};
Run Code Online (Sandbox Code Playgroud)

这是我在.cpp文件中的recv线程函数.

hThread = (HANDLE)_beginthreadex(NULL, 0, &CUdpSocket::ServerRecvThread, pRecvData, 0, &threadID); // Thread caller

unsigned __stdcall CUdpSocket::ServerRecvThread(void *threadArg) 
{   
    //-----------------------------------------------
    // Initialize Winsock
    //-----------------------------------------------
    // Create a receiver socket to receive datagrams
    //-----------------------------------------------
    // Bind the socket to any address and the specified port.
    //-----------------------------------------------
    // Call the recvfrom function to receive datagrams
    // on the bound socket. …
Run Code Online (Sandbox Code Playgroud)

c++ networking multithreading

0
推荐指数
1
解决办法
430
查看次数

标签 统计

c++ ×9

mfc ×3

multithreading ×2

networking ×1

udp ×1

visual-c++ ×1

windows ×1