我正在尝试在C#中制作一些需要调用未经管理的DLL的东西,这个过程我什么都不知道!我找到了一个“Hello World”教程,应该是从底部复制和粘贴几行代码就可以了:"Hello World" tutorial
using System;
using System.Runtime.InteropServices;
namespace PInvokeTest
{
class Program
{
[DllImport("msvcrt40.dll")]
public static extern int printf(string format, __arglist);
public static void Main()
{
printf("Hello %s!\n", __arglist("World"));
Console.ReadKey();
}
}
}
这段代码可以编译并运行,没有任何错误,但是在执行到 ReadKey()
时没有输出任何内容。
我是否遗漏了一些重要的设置步骤?该项目构建于 .NET 4.6.1(如果对 DLL 版本或其他方面有影响,请注意)。
printf
自动执行,否则不行。我能从C#刷新吗,还是必须添加另一个PInvoke签名来进行刷新方法?那会是什么样子? - Benjin