vc2019使用paho.mqtt动态库步骤
时间: 2023-06-16 09:04:49 浏览: 217
下面是使用VC2019使用paho.mqtt动态库的步骤:
1.下载paho.mqtt C语言库的动态库版本,可以从官网下载最新版本:https://www.eclipse.org/paho/clients/c/
2.解压下载的文件,将其中的lib和include文件夹复制到你的工程目录下。
3.在VC2019中新建一个空的Win32控制台应用程序工程。
4.在工程目录下新建一个名为lib文件夹,将解压后的动态库文件(如paho-mqtt3a.dll、paho-mqtt3c.dll等)复制到该文件夹下。
5.在VC2019中添加paho.mqtt的头文件路径,具体操作为:右键点击工程名称,选择“属性”,在左侧栏选择“VC++ 目录”,在右侧的“包含目录”中添加paho.mqtt的include路径,例如:$(ProjectDir)\include。
6.在VC2019中添加paho.mqtt的库文件路径和库文件名称,具体操作为:在“VC++ 目录”中选择“库目录”,在右侧的“库目录”中添加paho.mqtt的lib路径,例如:$(ProjectDir)\lib。然后在“链接器”中选择“输入”,在右侧的“附加依赖项”中添加paho.mqtt的库文件名称,例如:paho-mqtt3a.lib。
7.在代码中添加以下头文件:
```c
#include "stdio.h"
#include "stdlib.h"
#include "MQTTClient.h"
```
8.在代码中添加以下代码,连接MQTT服务器,并发布消息:
```c
int main(int argc, char* argv[])
{
MQTTClient client;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
MQTTClient_message pubmsg = MQTTClient_message_initializer;
MQTTClient_deliveryToken token;
int rc;
MQTTClient_create(&client, "tcp://localhost:1883", "ExampleClientPub", MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
printf("Failed to connect, return code %d\n", rc);
exit(-1);
}
pubmsg.payload = "Hello world!";
pubmsg.payloadlen = strlen("Hello world!");
pubmsg.qos = 0;
pubmsg.retained = 0;
MQTTClient_publishMessage(client, "test", &pubmsg, &token);
rc = MQTTClient_waitForCompletion(client, token, 10000L);
printf("Message with delivery token %d delivered\n", token);
MQTTClient_disconnect(client, 10000);
MQTTClient_destroy(&client);
return rc;
}
```
9.编译并运行程序。
注意:在运行程序之前,需要先启动一个MQTT服务器。在本地开发和测试可以使用Mosquitto,可以从官网下载最新版本:https://mosquitto.org/download/。下载并安装Mosquitto后,可以在命令行中运行以下命令来启动一个本地的MQTT服务器:
```
mosquitto -v
```
启动后,可以在代码中修改MQTT服务器的地址和端口,例如:
```c
MQTTClient_create(&client, "tcp://127.0.0.1:1883", "ExampleClientPub", MQTTCLIENT_PERSISTENCE_NONE, NULL);
```
这样就可以连接到本地的MQTT服务器并发布消息了。
阅读全文