创建动态库
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文件,这就是生成的动态库
动态库的使用
正常右键“引用”,然后添加即可
提示
由于动态库中使用的是静态函数,所以使用此函数的时不用声明动态库中的类,直接用就行