【问题标题】:Incorrect argument to CreateThreadCreateThread 的参数不正确
【发布时间】:2020-03-13 05:38:49
【问题描述】:
#include <windows.h>

DWORD Menuthread(LPVOID in) { return 0; }

int main()
{
    CreateThread(NULL, NULL, Menuthread, NULL, NULL, NULL);
}

我收到以下错误消息:

error C2664: 'HANDLE CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD)': cannot convert argument 3 from 'DWORD (__cdecl *)(LPVOID)' to 'LPTHREAD_START_ROUTINE'
note: None of the functions with this name in scope match the target type

【问题讨论】:

  • 如果您按照说明创建可回答的问题,stackoverflow.com 上的人员将很乐意为您提供帮助。您发布的问题缺少信息,使任何人都无法找出问题所在。您应该遵循的经验法则是问自己以下问题:任何人都可以剪切/粘贴显示的代码、编译和重现您的问题吗?如果答案是“否”,那么谁能告诉你问题是什么? P.S.,这并不意味着你应该发布你的所有代码,而只是一个minimal reproducible example
  • 很抱歉您在上一个问题上受到了辱骂,如果新用户在第一次尝试时没有提出完美的问题,有些人仍然对新用户不好。正如 Sam 所说,我们需要一个 minimal reproducible example。可能我们需要的只是变量的包含和声明。当您没有向我们提供重现所述错误的完整代码时,我们很难帮助您解决编译器错误。
  • 您不需要发布所有内容,我们需要一个minimal reproducible example,强调“最小”,删除所有不相关的代码部分,直到您有最少量的代码显示错误。这个过程通常可以让你通过突出问题的确切位置来自己解决问题
  • 不抱歉,堆栈溢出不是这样工作的,您的问题的答案将成为其他用户查找可能的编程问题的知识库的一部分,私下解决它不是目标。如果您需要私人帮助,请与专业程序员签约!
  • 它说缺少文件但我有这个文件这不是错误错误是:Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler C2664 "HANDLE CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD )" : Konvertierung von Argument 3 von "DWORD (__cdecl *)(LPVOID)" in "LPTHREAD_START_ROUTINE" nicht möglich D2DOverlay Test External C:\Users\notsp\Desktop\fortnite_usermode_get_ids\Source.cpp 398

标签: c++ c dword


【解决方案1】:

如果您在 32 位 Visual c++ 上编译,则默认调用约定为 __cdeclCreateThread 需要一个 __stdcall 函数指针。最简单的解决方法是使用 WINAPI 宏,该宏应定义为您使用的平台的正确调用约定:

#include <windows.h>

DWORD WINAPI Menuthread(LPVOID in) { return 0; }

int main()
{
    CreateThread(NULL, NULL, Menuthread, NULL, NULL, NULL);
}

或者使用std::thread 并且只使用默认调用约定,这也意味着您可以将参数传递给您的函数,而无需将它们强制转换为void*

#include <windows.h>
#include <thread>

DWORD Menuthread() { return 0; }

int main()
{
    std::thread thread(Menuthread);
}

【讨论】:

  • 感谢您的帮助,现在 xor.hpp 和线程糟透了,我想我退出了这个项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2021-01-11
  • 2023-04-11
相关资源
最近更新 更多