小编RCC*_*RCC的帖子

OpenThread()返回NULL Win32

我觉得有一个明显的答案,但它一直在逃避我.我在C++中有一些遗留代码在尝试调用OpenThread()时会中断.我在Visual C++ 2008 Express Edition中运行它.程序首先获取调用线程的ThreadID,并尝试打开它,如下所示:

ThreadId threadId = IsThreaded()?thread_id ::: GetCurrentThreadId();

HANDLE threadHandle = OpenThread(THREAD_ALL_ACCESS,FALSE,threadId);

现在这是我不明白的:如果线程ID是当前线程的ID,是不是已经打开了?这可能是它返回NULL的原因吗?

对于任何反馈,我们都表示感谢.

c++ windows winapi multithreading visual-c++

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

GetAdaptersInfo和GetAdaptersAddressess BufferLength Param

我在C++中有一些遗留代码可以做一些我不理解的事情.我在运行Windows XP的计算机上运行Visual C++ 2008 Express Edition.

该代码使用了一些Windows函数:GetAdaptersInfo和GetAdaptersAddressess.我意识到这两个的最后一个参数是指向缓冲区大小的指针,因为它是in_out,所以可以在函数内进行更改.

我的问题是:这些函数是否应该改变缓冲区长度?

在我的代码中,每次调用这些函数时,缓冲区长度变量都被初始化为零,并且在调用函数之后,它仍然为0.

c++ windows windows-xp visual-c++

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

标签 统计

c++ ×2

visual-c++ ×2

windows ×2

multithreading ×1

winapi ×1

windows-xp ×1