所以,我想在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);
我需要实现以下结构才能使其正常工作:HANDLE,DWORD ......以及其他如何做到这一点?
答案 0 :(得分:4)
答案 1 :(得分:3)
您可以使用pinvoke.net作为Win32 API翻译的来源。例如,以下是您感兴趣的两个:
请注意,那里的翻译质量可变。例如,上面的链接有CreateThread
的两个版本。其中只有一个是准确的。很明显它是哪一个!
更一般地说,您应该好好阅读MSDN p/invoke tutorial和Marshaling Data with Platform Invoke。
答案 2 :(得分:1)
我发现MSDN主题Windows Data Types有助于识别Windows DLL中使用的各种类型别名。