C#动态库创建及使用

创建动态库

1、创建项目

在这里插入图片描述

注意

C#工程下面由好多建立动态库的选项,要选择上图中标注的那个

2、确认net环境

在这里插入图片描述

注意

动态库的版本要比最终运行的环境的版本要低

3、编写代码

这步没有什么需要特别说明的,正常写就行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO.Ports;

namespace WarningMessageSend
{
    public class WarningMessageSend
    {
        SerialPort SerialPort = new SerialPort();

        /// <summary>
        /// Default
        /// PortName: “COM4”
        /// BaudRate: 115200
        /// DataBits: 8
        /// </summary>
        public WarningMessageSend()
        {
            SerialPort.PortName = "COM4";
            SerialPort.BaudRate = 115200;
            SerialPort.DataBits = 8;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="PortName">the name of port</param>
        public WarningMessageSend(String PortName)
        {
            SerialPort.PortName = PortName;
            SerialPort.BaudRate = 115200;
            SerialPort.DataBits = 8;
        }


        /// <summary>
        /// Send warning message to phone
        /// </summary>
        /// <param name="PortName">the name of portname</param>
        /// <param name="BaudRate">the baudrate</param>
        /// <param name="Message">the message you want to send</param>
        /// <param name="PhoneNumber">phone number</param>
        /// <returns></returns>
        public static bool SendWarningMessage(String PortName, int BaudRate, String Message, String PhoneNumber)
        {
            SerialPort SerialPort_temp = new SerialPort();

            SerialPort_temp.PortName = PortName;
            SerialPort_temp.BaudRate = 115200;
            SerialPort_temp.DataBits = 8;

            try
            {
                SerialPort_temp.Open();

                SerialPort_temp.Write("AT+CSCS=\"GSM\"\r\n");
                System.Threading.Thread.Sleep(300);
                SerialPort_temp.Write("AT+CMGF=1\r\n");
                System.Threading.Thread.Sleep(300);
                SerialPort_temp.Write("AT+CMGS=\"" + PhoneNumber + "\"\r\n");
                System.Threading.Thread.Sleep(300);
                SerialPort_temp.Write(Message);
                System.Threading.Thread.Sleep(300);
                byte[] messageover = { 0x1a };
                SerialPort_temp.Write(messageover, 0, 1);

                SerialPort_temp.Close();

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
    }
}

上面这段代码要实现的功能是通过sim800c这个硬件发送短信,构造函数基本上没用(先留着,说不定甲方又会有新的要求),主要是那个静态函数。动态库生成之后,只要调用那个静态函数即可直接发送短信。

4、生成动态库

直接点击运行,运行不成功也没关系,只要输出框中显示“成功生成”即可
在这里插入图片描述

然后在bin/Debug目录下会生成dll文件,这就是生成的动态库
在这里插入图片描述

动态库的使用

正常右键“引用”,然后添加即可

在这里插入图片描述

提示

由于动态库中使用的是静态函数,所以使用此函数的时不用声明动态库中的类,直接用就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值