C#调用非托管代码

微软视窗应用程序接口,正因为如此,开发者可以调用视窗系统接口,实现各种功能和操作 窗口应用编程接口以非托管代码的形式存在于窗口系统中,并包含在。系统目录中的dll文件。它以出口功能的形式向公众开放。

因为。net框架写得不好,我们需要调用窗口应用编程接口来实现许多功能。因此,如何调用非托管代码的窗口应用编程接口是一项必要的技能。让我们一起学习吧 系统。运行时。[的互操作服务类/h/]
。net提供了使用非托管代码的能力,因此它在程序启动前被引用。

using System.Runtime.InteropServices;
然后使用DllImport关键字导入dll文件并导入需要使用的函数。 
[DllImport("User32.dll", EntryPoint = "MessageBox")]
public static extern int MessageBoxapi(int h, string m, string c, int type);

注意:导入函数的名称应该与dll文件中的名称相同,否则需要EntryPoint属性来指定新名称。

每个Win32应用编程接口函数都可以在MSDN文档中找到它的原型声明。它所在的dll文件 因此,在导入应用编程接口函数时,现在可以在MSDN文档中找到该函数的声明,然后分析其参数和返回值,并且。函数所在的dll文件是已知的,最后可以将其导入托管代码。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("User32.dll", EntryPoint = "MessageBox")]
public static extern int MessageBoxapi(int h, string m, string c, int type);

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(".net messagebox");
}

private void button2_Click(object sender, EventArgs e)
{
MessageBoxapi(0, "MessageBoxapi", "winapi", 5);
}

}

转载请注明出处:C#调用非托管代码
本文链接:https://www.cmezy.com/blog/cwapi



					    					            

评论0

请先

没有账号? 忘记密码?