PInvoking stdin, stdout and stderr to unmanaged dll



我有一个包含类似内容的C标头文件:

void init(FILE* in, FILE* out, FILE* err);

我猜这等于以下pinvoke签名:

[DllImportAttribute("mylib", EntryPoint = "init")]
public static extern void init(IntPtr @in, IntPtr @out, IntPtr err);

顺便说一句,我想调用这种方法。我可以从console.in,console.out,console.error以某种方式获得intptr吗?

它应该在Linux和Windows上工作,而不是仅限Windows。

您可以使用getStdhandle获取Standart Input(std_input_handle(,输出(std_output_handle(和错误(std_error_handle(文件。

然后,您可以使用WriteFile,ReadFile函数从这些文件中写入和读取。

之后,如果您仍然需要一个文件结构,请按照以下步骤创建一个。

Winapi中的句柄如何制作文件*?

最新更新