问题标签 [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.
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"
我究竟做错了什么?
c - 如何在纯C中包装函数指针
是否有可能以某种方式在 C 中“包装”一个函数指针,类似于在 C# 中对 lambda 执行的操作?
我遇到的实际问题是:
我有几个具有不同参数的函数:
...我想创建几个线程来循环运行它们:
在 C#/C++ 中,我会使用 lambda,或指向将调用另一个方法的方法的指针,但我不知道如何在 C 中执行此操作,除非我手动创建包装函数:
有没有其他方法可以避免执行此步骤?
powershell - 在 Powershell 脚本中使用 CreateThread winapi
我想使用 CreateThread WinApi 创建在 powershell 中运行脚本代码的线程。我使用此代码但发生错误:
并定义createthread winapi:
我以这种方式调用createthread winapi:
但发生错误:无法将类型“MyDelegateType”的“MyDelegateType”值转换为类型“System.IntPtr”我该如何解决这个错误?还有另一种在powershell中使用创建线程winapi的方法吗?
c++ - 如何在后台检查在c ++中执行主程序时是否已经过了一分钟?
我创建了一个在屏幕上显示当前时间的程序。我现在要做的是每分钟更新一次。
假设时间通过以下过程更新:
现在,我想要做的是显示的时间now.hour() << ':' << now.minute();
应该每分钟更新一次,而不会延迟或中断主程序。
这意味着如果用户在提示后几分钟内没有提供任何输入,则时间应在每分钟后自动更新,并且在整个过程中程序始终等待用户输入(即主程序运行为通常)。有什么办法吗?我知道这样做可能没有跨平台技术。所以我只想为windows os
.
编辑:更新后不需要恢复当前光标位置或用户的任何书面文本(尚未输入)。
x86-64 - 为什么 CreateThread 不起作用?
我正在尝试将此代码注入 PE 文件以使用 CreateThread 运行我的程序以在 PE 文件中运行键盘记录器,但 CreateThread 失败并出现 3E6h ERROR_NOACCESS 错误。我在下面的源代码中的错误在哪里?
c# - 将托管 C# 代码移植到非托管 C++ 代码 - 线程、注册表类
我正在将托管代码移植到非托管代码。我有来自以下命名空间的托管代码中的 API
我已经转换了注册表 API。我在转换时遇到问题
请让我知道如何进行移植。
multithreading - 使用 CreateThread 启动线程时出错
我正在尝试创建一个调度程序,并且在创建一个线程时,它给出了以下错误:
“DWORD (*)(LPVOID lpParameter)”类型的参数与“LPTHREAD_START_ROUTINE”类型的参数不兼容。
我按照其他问题中的建议将线程函数设为静态,但它仍然给出相同的错误。任何解决方案或指针将不胜感激。
这是我的代码的相关部分:
c - 如何将参数传递给 ZwCreateThreadEx 例程?
下面的代码可以很好地创建单独的线程,而无需传递任何数据类型参数。现在我想知道如何将参数传递给ZwCreateThreadEx
调用时执行的方法?
例如,如何传递一个HANDLE类型和一个类型UNICODE_STRING?
我的实际代码:
c++ - c ++ CreateThread非静态成员没有特定成员名称
我正在尝试使用非静态类成员创建一个线程,如下所示:
如您所见,我只能运行一个特定的成员,因此该方法不可移植,并且不能用于任何类或成员。
我知道我可以std::thread
轻松使用,但我正在开发一个不应该在其中使用任何 C++ 运行时的项目,所以我正在为new
/ delete
、线程、文件 I/O 等创建包装器。否则,我总是使用std::thread
它极好的。在这个项目中,我只需要使用 Win32 API。
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))
更新:这是一个示例代码,这个实现可以在网上看到:
请注意上面链接的脚本行中提到的注释:
看来作者在评论 CreateThread 函数调用的参考时可能是错误的。
假设: 根据 Mark's answer 中提到的评论,ThreadID 和 ThreadHandle 是不同的,并且通过传入 ctypes.pointer(ctypes.c_int(0)) 而不仅仅是普通的 ctypes.c_int(0) (NULL) 意味着在 int 0 位置,将存储线程 ID。有人可以证实这个假设吗?