这是我的代码,其中包含错误:
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)
使工作线程在单个类中工作的正确方法是什么?
我有一个关于类对象的非常基本的问题.创建类之后,我们需要创建一个类对象.在这一点上,我有点困惑,无论是*object或object.例:
CClass objectCClass *object它们两者有什么区别?要访问类功能,我需要使用点'.'和箭头'->'.我知道用于访问类函数的点和箭头,但是点和箭头的重要意义是什么?
码:
void *buff;
char *r_buff = (char *)buff;
Run Code Online (Sandbox Code Playgroud)
我无法理解类型铸造buff.请帮忙.
谢谢.
如何将CString转换为const char*?我已经尝试了在互联网上找到的所有东西,但我仍然无法转换它们.
请帮忙.
谢谢.
我有问题访问和修改我的多线程数据.有没有正确的方法来做到这一点?
这是我的完整代码:
#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) 我想一次创建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)
我怎么能一次生成一个完全随机的数字?请帮忙.
谢谢.
我想实现一个UDP服务器,它只使用一个端口(端口:6516),但可以处理来自多个客户端的多个数据包.我被告知要创建一个监听套接字,但我无法理解.据我所知,只有TCP可以执行监听事件.
有人能告诉我正确有效的方法来达到这种目的吗?我一直在搜索整个互联网,但最终我还没有明白我的想法.非常感谢工作步骤(对于服务器和客户端).
谢谢.
我有一个错误原因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开发我的项目.
我正在做一个项目,要求我接收来自许多发件人的消息.我的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)