在 C# 中使用 Windows API 函数

luc*_*dru 0 c# pinvoke

所以,我想在 C# 中使用 CreateProcess API 函数。我知道我必须导入 kernel32.dll 文件并覆盖函数头并将其标记为 extern。我也知道我必须实现函数使用的结构。我遇到的问题如下:在哪里可以看到我需要实现的结构的确切结构?

[DllImport("Kernel32.dll")]
public static extern HANDLE CreateThread(PSECURITY_ATTRIBUTES psa,
                                             DWORD cbStack,
                                             PTHREAD_START_ROUTINE pfnStartAddr,
                                             PVOID pvParam,
                                             DWORD fwdCreate,
                                             PDWORD pdwThreadID);
Run Code Online (Sandbox Code Playgroud)

我需要实现以下结构才能使其正常工作:HANDLE、DWORD...其余的我该怎么做?

Jus*_*ner 5

您不需要重新实现这些类型。您只需要将它们转换为相应的 .NET 等效项:

平台调用数据类型

您可能还想知道 .NET 有自己的创建线程和进程的方式:

进程类(System.Diagnostics)

线程类(System.Threading)