gpt4 book ai didi

c# - 平台 pinvoke 教程 msdn

转载 作者:太空狗 更新时间:2023-10-30 00:52:18 25 4
gpt4 key购买 nike

下面是来自msdn的教程. _flushall 的输出在教程中是“测试”,但我通过使用 console.write() 显示输出得到了“2”。有人可以解释一下吗?

using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
[DllImport("msvcrt.dll")]
public static extern int puts(string c);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();

public static void Main()
{
puts("Test");
_flushall();
}
}

最佳答案

该代码不再适用于现代 Windows 版本。您获得的“msvcrt.dll”版本是针对 Windows 可执行文件的私有(private) CRT 实现,它以其他无法诊断的方式进行了修补,可能与安全性有关。

您需要找到另一个仍然友好的人。如果您安装了 Visual Studio 2010 或更高版本,您的计算机上就会有一个。查看 c:\windows\syswow64 目录并查找 msvcrxxx.dll,其中 xxx 为 100、110 或 120。相应地更改声明。在我的机器上,安装了 VS2013:

[DllImport("msvcr120.dll")]
public static extern int puts(string c);
[DllImport("msvcr120.dll")]
internal static extern int _flushall();

输出:

Test

关于c# - 平台 pinvoke 教程 msdn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com