- 博客(58)
- 收藏
- 关注
原创 vs2015编译和调用dll
1.创建win32项目,选择dll,其他不勾选2.在dllmain.cpp中添加导出的函数,例int ave(int a, int b){ return (a + b) / 2;}3.项目中添加模块自定义文件添加内容LIBRARYEXPORTS ave4.加载#include <iostream>#include <Windows.h>typedef int(*FAVE)(int, int);typedef int(WINAPI* FAVE_1)(
2022-05-13 11:06:22
1295
原创 c++读取文件中的数据
使用c++读取文件中的数据文件中的内容是一些数据30 31 32 33 34 35 36 37 38 39 40 ......读取文件中数据的函数#include <fstream>void loadFile(char* filename){ std::ifstream ifs; ifs.open(filename, std::ios::in); if(ifs.is_open()) { int tmp = { 0 };
2022-05-06 14:33:32
3499
1
原创 Qt5.14.2编译mysql
Qt5.14.2编译mysql1 找到并打开mysql.pro文件2 修改mysql.pro文件的内容2.1注释QMAKE_USE += mysql2.2添加mysql的lib库和包含目录2.3添加目标文件对应的目录2.4相关修改如下3 编译4 找到生成的文件5 将生成的文件拷贝到Qt的安装路径下1 找到并打开mysql.pro文件在QT的安装路径下找到mysql.pro文件,我这里的路径是:D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers
2022-04-19 20:25:17
2200
6
原创 MFC设置字体的大小、下划线等内容
以CEdit控件为例CFont* m_Font;m_Font = new CFont;m_Font->CreateFont( -15/*高度*/, -7.5/*宽度*/, 0/*不用管*/, 0/*不用管*/, 400 /*一般这个值设为400*/, FALSE/*不带斜体*/, TRUE/*不带下划线*/, FALSE/*不带删除线*/, DEFAULT_CHARSET, //这里我们使用默认字符集,还有其他以 _CHARSET 结尾的常量可用 OUT_CHARACTER_PRECI
2021-12-25 15:43:29
1406
原创 MFC填充对话框背景和设置鼠标拖动
MFC填充对话框背景和设置鼠标拖动1.打开对话框属性窗口2.添加消息WM_ERASEBKGNDWM_LBUTTONDOWN3.添加对应的代码BOOL CMFCTestDlg::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CBrush brush(RGB(0, 0, 0)); CRect rc; GetClientRect(&rc); pDC->FillRect(&rc, &brush);
2021-12-20 10:22:43
376
原创 宽字节转多字节
std::string toString(const std::wstring str){ int len = WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, NULL, 0, NULL, NULL); std::string ret; if (len <= 0) return ret; ret.resize(len); WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, (char*)ret.c_
2021-12-12 00:03:23
459
原创 msxml节点接口
MSXML对应的头文件<msxml2.h>IXMLDOMNodeget_nodeNameget_nodeValueput_nodeValueget_nodeTypeget_parentNodeget_childNodesget_firstChildget_lastChildget_previousSiblingget_nextSiblingget_attributesinsertBeforereplaceChildremoveChildappendChildha
2021-12-05 15:05:46
518
原创 mysql学习笔记
启动/停止管理员身份打开cmd启动: net start mysql停止: net stop mysqlmysql服务端的登录和退出方式一:mysql自带的客户端方式二:cmd登录:mysql -h localhost -P 3306 -u root -ph: hostP: 端口号登录本地:mysql -u root -p退出:exit/ctrl + c查看mysql服务端的版本方式一:客户端中输入:select version();方式一:cmd中输入:mys
2021-11-22 22:39:15
430
原创 手写线程池(c++实现)
TaskQueue.h#pragma once#include <pthread.h>#include <queue>using callback = void(*)(void* arg);template<typename T>struct Task{ Task<T>() { function = nullptr; arg = nullptr; } Task<T>(callback f, void* arg) {
2021-11-22 17:10:47
2052
原创 手写线程池(C语言实现)
threadpool.h#ifndef _THREADPOOL_H#define _THREADPOOL_Htypedef struct ThreadPool ThreadPool;// 创建线程池并初始化ThreadPool* threadPollCreate(int min, int max, int queueSize);// 销毁线程池int ThreadPoolDestory(ThreadPool* pool);// 给线程池添加任务void threadPoolAdd(T
2021-11-18 00:59:49
709
原创 RTSP协议详解
RTSP协议详解RTSP协议是基于RTP和RTCP之上的RTSP使用RTP传输媒体数据,使用RTCP来交互控制命令整个协议是先用RTSP进行信息交互然后再使用RTP/RTCP进行媒体数据传输RTSP的控制命令交互格式客户端的请求格式:Method url version\r\nCSeq: x\r\nxxx\r\n...\r\nmethod表示方法,具体见后面详细内容Url就是请求地址,一般为rtsp://ip:port/session 默认554端口 常见:8554端口Ve
2021-11-08 02:01:01
1203
原创 extern关键字的作用
extern关键字的作用extern可以置于变量或函数前,以标识变量或函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其他模块中寻找其定义。
2021-11-06 03:01:41
848
原创 vlc库的基本使用
关键的库函数:创建实例libvlc_new()加载媒体libvlc_media_new_path()/libvlc_media_new_location()(file:///、http://、rtsp://、screen://)创建播放器libvlc_media_player_new_from_media()设置播放窗口libvlc_media_player_set_hwnd()开始播放libvlc_media_player_play()获取播放长度libvlc_media_play
2021-11-05 17:44:33
4159
7
原创 基于epoll的高性能服务端
#include <stdlib.h>#include "XTcp.h"#include <string.h>#include <thread>class TcpThread{public: void Main() { char buf[1024] = { 0 }; for (;;) { int recvlen = client.Recv(buf, sizeof(buf) - 1); if (recvlen <= 0) brea
2021-11-05 00:23:39
118
原创 fcntl函数
fcntl()函数,设置非阻塞int flags = fcntl(fd, F_GETFL);flags |= O_NONBLOCK; //O_NONBLOCK: 0为阻塞,1为非阻塞fcntl(fd, F_SETFL, flags);
2021-11-04 14:36:48
414
原创 C4996 ‘strcpy‘: This function or variable may be unsafe.
VS报错:C4996 ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.解决方案:方法一: 属性页 C/C++ --> 高级 --> 禁用特定警告 加上4996。方法二:属性页 C/C++ -->
2021-11-03 22:14:36
774
原创 C1010 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h“”?
报错:C1010 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?解决方案
2021-11-03 21:48:32
141
原创 跨平台网络编程:创建XTcp类接口
XTcp.h#pragma once#include <string>class XTcp{public: int CreateSocket(); bool Bind(unsigned short port); XTcp Accept(); void Close(); int Recv(char* buf, int bufsize); int Send(const char* buf, int sendsize); XTcp(); virtual ~XTcp(); i
2021-11-03 17:39:50
266
原创 跨平台网络编程:多线程服务器
#include <string.h>#include <stdio.h>#include <stdlib.h>#ifdef WIN32#include <windows.h>#define socklen_t int#else#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <arpa/inet.h&
2021-11-03 15:27:06
165
原创 未定义标识符socklen_t
windows下VS报错:未定义标识符socklen_t解决方案:方法一:将socklen_t替换成int方法二:使用宏定义,在文件前面加上#define socklen_t int
2021-11-03 15:18:26
3401
原创 跨平台网络编程:创建套接字
#ifdef WIN32#include <windows.h>#else#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#define closesocket close#endif#include <stdio.h>//#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]
2021-11-02 22:48:05
125
原创 samba配置
1.安装samba先切换到root用户,然后进行安装apt-get install samba2.打开文件配置vim /etc/samba/smb.conf3.修改配置内容在文件的末尾添加以下内容:[code]path = /codewriteable = yesbrowseable = yesguest ok = yes4.需要重新启动如果之前启动过,需要把它关掉pkill smbd然后启动smbd5.创建目录,设置权限先创建目录mkdir /code然
2021-11-02 12:54:32
234
原创 c++实现简单链表
struct Node { Node* next; int data;};struct List { Node* phead; List() { phead = new Node(); phead->next = NULL; } void push_back(int x) { Node*p = phead; while (p->next) { p = p->next; } p->next = new Node(); p->n
2021-11-02 02:46:09
77
原创 字符串转整型
字符串转整型#include <iostream>using namespace std;int chars2int(const char* a){ int i = 0; while (a[i] != '\0') { i++; } int* b = new int[i]; int ans = 0; for (int j = 0; j < i; j++) { b[j] = (int)a[j] - 48; ans += pow(10, i - j - 1)
2021-10-30 01:22:54
74
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人