gpt4 book ai didi

c++ - C++ 中的图形应用程序和 C 中的代码 **Qt 编程**

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:28 25 4
gpt4 key购买 nike

我有一个用 c 中的套接字实现的应用程序,我对 C++ 和 Qt 很满意,是否可以在 Qt 上同时执行 C 和 C++。

C 上有一个示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define PORT 9600

int main(int argc, char *argv[]){
int sock_cnx; /* Socket pour ouverture de connexion */

struct sockaddr_in serveraddr;
struct sockaddr_in clientaddr;

int newfd;
char buf[1024];
int nbytes;
int addrlen;
int i, j;

/* Ensemble des descripteurs qu’on souhaite surveiller en lecture */
fd_set surveil_fds;

/* Ensemble des descripteurs qu’on va utiliser dans SELECT */
fd_set read_fds;

/* Memorise le plus grand descripteur : a utiliser dans SELECT*/
int fdmax;

addrlen = sizeof(clientaddr);

/* Ouverture de la socket du serveur */
if ((sock_cnx = socket(AF_INET,SOCK_DGRAM,0)) == -1){
perror("Erreur socket");
exit(1);
}

bzero(&serveraddr, sizeof(serveraddr));

serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(PORT);
serveraddr.sin_addr.s_addr = htonl (INADDR_ANY);

bzero(&(serveraddr.sin_zero), 8);

/* Bind */
if (bind(sock_cnx, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) == -1) {
perror("Erreur Bind");
exit(1);
}
........
return 0;
}

我已经为 Qt 上的应用程序创建了我的界面。

最佳答案

在您的 Qt/C++ 应用程序中,您可以按如下方式包含 C 文件:

extern "C" {
#include "myCHeaderFile.h
} /* extern "C" */

您可以简单地访问 C++/Qt 文件中的 C 函数。

关于c++ - C++ 中的图形应用程序和 C 中的代码 **Qt 编程**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com