问题标签 [createthread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

c++ - C++ 类中的多线程非静态

我正在为 Windows 开发一个应用程序,其中需要运行三个进程:_thread_EEG(采集)、_thread_MachineLearning(处理)、_thread_Interface(接口)。第二个过程使用第一个过程的数据,第三个过程需要第二个过程的结果。

线程在函数中调用uMotor::BCI()

在函数CreateThread中,Visual Studio 2015 显示错误argument of type "DWORD(_stdcall uMotor::*)(LPVOID arg)" is incompatible with parameter of type "LPTHREAD_START_ROUTINE"

我究竟做错了什么?

0 投票
2 回答
1093 浏览

c - 如何在纯C中包装函数指针

是否有可能以某种方式在 C 中“包装”一个函数指针,类似于在 C# 中对 lambda 执行的操作?

我遇到的实际问题是:

我有几个具有不同参数的函数:

...我想创建几个线程来循环运行它们:

在 C#/C++ 中,我会使用 lambda,或指向将调用另一个方法的方法的指针,但我不知道如何在 C 中执行此操作,除非我手动创建包装函数:

有没有其他方法可以避免执行此步骤?

0 投票
1 回答
875 浏览

powershell - 在 Powershell 脚本中使用 CreateThread winapi

我想使用 CreateThread WinApi 创建在 powershell 中运行脚本代码的线程。我使用此代码但发生错误:

并定义createthread winapi:

我以这种方式调用createthread winapi:

但发生错误:无法将类型“MyDelegateType”的“MyDelegateType”值转换为类型“System.IntPtr”我该如何解决这个错误?还有另一种在powershell中使用创建线程winapi的方法吗?

0 投票
1 回答
142 浏览

c++ - 如何在后台检查在c ++中执行主程序时是否已经过了一分钟?

我创建了一个在屏幕上显示当前时间的程序。我现在要做的是每分钟更新一次。

假设时间通过以下过程更新:

现在,我想要做的是显示的时间now.hour() << ':' << now.minute();应该每分钟更新一次,而不会延迟或中断主程序。

这意味着如果用户在提示后几分钟内没有提供任何输入,则时间应在每分钟后自动更新,并且在整个过程中程序始终等待用户输入(即主程序运行为通常)。有什么办法吗?我知道这样做可能没有跨平台技术。所以我只想为windows os.

编辑:更新后不需要恢复当前光标位置或用户的任何书面文本(尚未输入)。

0 投票
1 回答
135 浏览

x86-64 - 为什么 CreateThread 不起作用?

我正在尝试将此代码注入 PE 文件以使用 CreateThread 运行我的程序以在 PE 文件中运行键盘记录器,但 CreateThread 失败并出现 3E6h ERROR_NOACCESS 错误。我在下面的源代码中的错误在哪里?

0 投票
0 回答
52 浏览

c# - 将托管 C# 代码移植到非托管 C++ 代码 - 线程、注册表类

我正在将托管代码移植到非托管代码。我有来自以下命名空间的托管代码中的 API

我已经转换了注册表 API。我在转换时遇到问题

请让我知道如何进行移植。

0 投票
0 回答
406 浏览

multithreading - 使用 CreateThread 启动线程时出错

我正在尝试创建一个调度程序,并且在创建一个线程时,它给出了以下错误:

“DWORD (*)(LPVOID lpParameter)”类型的参数与“LPTHREAD_START_ROUTINE”类型的参数不兼容。

我按照其他问题中的建议将线程函数设为静态,但它仍然给出相同的错误。任何解决方案或指针将不胜感激。

这是我的代码的相关部分:

0 投票
1 回答
1047 浏览

c - 如何将参数传递给 ZwCreateThreadEx 例程?

下面的代码可以很好地创建单独的线程,而无需传递任何数据类型参数。现在我想知道如何将参数传递给ZwCreateThreadEx调用时执行的方法?

例如,如何传递一个HANDLE类型和一个类型UNICODE_STRING

我的实际代码:

0 投票
4 回答
385 浏览

c++ - c ++ CreateThread非静态成员没有特定成员名称

我正在尝试使用非静态类成员创建一个线程,如下所示:

如您所见,我只能运行一个特定的成员,因此该方法不可移植,并且不能用于任何类或成员。

我知道我可以std::thread轻松使用,但我正在开发一个不应该在其中使用任何 C++ 运行时的项目,所以我正在为new/ delete、线程、文件 I/O 等创建包装器。否则,我总是使用std::thread它极好的。在这个项目中,我只需要使用 Win32 API。

0 投票
1 回答
907 浏览

python - Python - Ctype.windll.kernel32.CreateThread 参数值

这可能是一个非常简单的问题,但不知何故,我无法完全理解答案,而且我也找不到关于该主题的任何好的相关文档。

因此,我尝试使用 Python 的 ctypes 模块和 ctypes.windll.kernel32 类中的 CreateThread 方法进行 PoC(在程序的内存空间中进行一些 shellcode 注入)

根据 msdn 文档CreateThread的 7 个参数分别是:

  • 指向安全属性的指针
  • 初始堆栈大小
  • 指向起始地址的指针
  • 指向任何参数的指针
  • 创建标志
  • 指向接收线程标识符的值的指针

而所有使用python调用c风格函数和库的例子都是这样的:

有人可以解释一下为什么最后一个参数被用作 ctypes.pointer(c_int0),而另一个空指针的整数 0 常量值用于其他参数。(例如 ctypes.c_int(0))

更新:这是一个示例代码,这个实现可以在网上看到:

python中createThread函数调用的第786行

请注意上面链接的脚本行中提到的注释:

看来作者在评论 CreateThread 函数调用的参考时可能是错误的。

假设: 根据 Mark's answer 中提到的评论,ThreadID 和 ThreadHandle 是不同的,并且通过传入 ctypes.pointer(ctypes.c_int(0)) 而不仅仅是普通的 ctypes.c_int(0) (NULL) 意味着在 int 0 位置,将存储线程 ID。有人可以证实这个假设吗?