C#静态调用外部动态库方法

调用方法和步骤:

首先,要添加命名空间:

using System.Runtime.InteropServices;

这个命名空间主页是为了使用:[DllImport]

第二,要静态引用外部库:

方法,要在类内,方法外。同时通过 static extern 声明。示例代码如下:

 

[DllImport("ticketPrinterDll.dll",CharSet=CharSet.Unicode)]

        public static extern void ShowMessage( );

        private void button1_Click(object sender, EventArgs e)

        {

            ShowMessage();

        }

最后,调用函数。这个就不用说了。直接调用就OK了。

 

[DllImport]的基本语法和属性:

[DllImport("dll name")]

EntryPoint:使用其它函数名

CharSet 指示用在入口点中的字符集,如:CharSet=CharSet.Ansi;

SetLastError 指示方法是否保留 Win32"上一错误",如:SetLastError=true;

ExactSpelling 指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配,如:ExactSpelling=false;

PreserveSig指示方法的签名应当被保留还是被转换, 如:PreserveSig=true;

CallingConvention指示入口点的调用约定, 如:CallingConvention=CallingConvention.Winapi;

例如:传染的字符集为Unicode

[DllImport("ticketPrinterDll.dll",CharSet=CharSet.Unicode)]

 

 

 

全部代码如下:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

using System.Runtime.InteropServices;

 

 

 

namespace TestDllCSharp

{

 

    public partial class Form1 : Form

    {

 

 

        public Form1()

        {

            InitializeComponent();

        }

 

       [DllImport("ticketPrinterDll.dll",CharSet=CharSet.Unicode)]

        public static extern void ShowMessage( );

        private void button1_Click(object sender, EventArgs e)

        {

            ShowMessage();

        }

    }

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值