-
Windows下从dll中导出lib文件
在Windows平台上使用MSYS编译一些开源代码时经常只会生成DLL文件,有事获取的SDK也可能丢失lib文件,而如果打算在VS中使用DLL则需要有对应的LIB文件,以下方法介绍如何从DLL文件中导出LIB文件。此方法有两个步骤:由dll文件生成def文件; 由def文件导出lib文件。1. 通过pexports或微软编译环境自带的dumpbin.exe导出DLL对应的def文件:pexports ***.dll > ***.def2. 通过微软编译环境自带的lib.exe程序根据...…
-
Windows下多线程/进程互斥与同步机制
Windows操作系统为多线程/进程编程提供了多种互斥与同步机制:1.临界区(CriticalSection)API: InitializeCriticalSection, DeleteCriticalSection, EnterCriticalSection, LeaveCriticalSection此机制具有线程所有权特性,持有临界区的线程可以重复进入临界区2.互斥锁(Mutex)API: CreateMutex, OpenMutex, ReleaseMutex此机制也具有线程所有权3...…
-
Windows下简单的互斥锁封装
在多线程编程中线程的互斥与同步尤为重要。Windows操作系统提供了不同的线程互斥同步机制:临界区、互斥锁、事件和信号量。以下为其中的互斥锁Mutex的封装类,为应用提供了简单的接口来操作互斥锁。#include <windows.h>class Mutex{private: HANDLE mutex;public: Mutex() { mutex = CreateMutex(NULL, FALSE, NULL); } ~Mutex() { CloseHandle(mute...…
-
Windows下C++程序终止进程
Windows下C++程序有多种方式可以关闭进程: 通过执行命令行程序,如taskkill等。 向进程发送关闭信号 通过Windows API来关闭进程,如TerminateProcess函数以下函数通过调用TerminateProcess来关闭指定名称的进程。bool kill_process(const char* lpszProcessName){ unsigned int pid = -1; bool retval = true; if (lpsz...…
-
YV12转RGB
YUV,是一种颜色编码方法,是编译true-color颜色空间(color space)的种类,Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma),Y’UV, YUV, YCbCr, YPbPr常常有些混用的情况,其中YUV和Y’UV通常用来描述模拟信号,而相反的YCbCr与YPbPr则是用来描述数位的影像信号,例如在一些压缩格式内MPEG...…
-
ffmpeg解码视频流并转YUV为RGB
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。以下代码在Qt环境下用ffmpeg解码视频流并将YUV转换为RGB格式。int MapThread::decode_write_frame(AVCodecContext *avctx, AV...…
-
关于我
Android程序猿教育 东华大学, 本科, 计算机 复旦大学, 硕士, 计算机技术 Android ★★★★☆ Java ★★★★☆ Python ★★★☆☆ C++ ★★★☆☆ Shell ★★★☆☆就业经历 百度 爱奇艺社区 GitHub liuwons的GitHub CSDN liuwons的CSDN博客…