- 博客(18)
- 资源 (5)
- 收藏
- 关注
转载 bool类型未初始化的产生的奇怪现象
在写C++代码时,有时候可能会忘记对一个布尔变量赋初值,运行程序后会发现产生了一些自己预想不到的结果,或者程序并没有按照设定的分支运行,今天来说一下这背后的原理性的东西。首先来看一段简单代码: int main(){ bool bTest; if (true==bTest) { cout << "1" << endl; } else if(false==bTest) { ...
2021-03-25 13:27:12 886
原创 记录使用《MFC中如何利用ffmpeg和SDL2.0多线程多窗口播放摄像头的视频》这篇文章的代码,遇到的一些问题
最近在研究如如何播放多个摄像头数据,在查找资料的过程中发现了这篇文章《<a href="http://blog.csdn.net/marising/article/details/52145316">MFC中如何利用ffmpeg和SDL2.0多线程多窗口播放摄像头的视频</a>》,使用这篇文章的代码。博主对每个部分介绍还是比较清楚的,中间省略了一些代码,还得需要自己调整。本文主要记录在调试过程中遇到的一些问题。...
2021-03-25 11:37:16 400
转载 DLL编写中extern “C”和__stdcall的作用
动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。 (1) 显式调用:使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。 (2) 隐式调用:可以使用#pragma comment(lib, “X...
2021-03-23 20:16:20 1273
转载 c++创建dll导出函数名称
1. extern "C"的作用 extern "C"的作用是声明以c语言的格式编译当前代码: c语言没有函数重载编译后的函数名若有参数以"xxx@数字"结尾,“数字"为所有参数占用的内存大小(4位对齐);若无参数则结尾不含”@数字"编译后的开头字符与调用约定__cdecl(无开头字符)、__stdcall(以‘_’开头)、__fastcall(以‘@’开头)有关 上代码,两个函数,分别以c和c++格式编译,...
2021-03-23 20:05:29 965
原创 关于C++动态库导出函数采用__stdcall调用方式之后,必须对导出函数进行重名
因项目需要,需要制作一个动态库提供给客户调用,最开始制作的动态库的导出函数采用默认的调用约定,如:#ifdef SIDRI_EXPORTS#define SIDRI_API __declspec(dllexport)#else#define SIDRI_API __declspec(dllimport)#endifextern "C"{ SIDRI_API int SI_OpenDevice(int nPort, long lBaudRate);};现在客户要求导出函数采用__st
2021-03-23 19:52:53 1383
原创 error MSB8041: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。
最近新安装了vs2019企业版,用vs打开vs2015的工程出现如下错误:error MSB8041: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。最后根据下面这篇文章解决的原文链接地址:https://blog.csdn.net/weixin_43264873/article/details/103409875内容如下: 工程移到vs2019提示错误MSB8041 MFC libra
2021-03-23 15:02:02 32577 15
原创 error LNK2001: 无法解析的外部符号 _IID_ICreateDevEnum
最近使用directshow,编译遇到如下的问题:解决办法:在头文件加入以下代码#pragma comment(lib, “Strmiids.lib”)
2021-03-22 17:07:03 2232
转载 C++自动查询/搜索串口号
在VS平台上用C++查找串口号,采用注册表搜索串口号的方式,本程序直接将搜索到的串口号用阿拉伯数字打印到DOS屏幕上,相关代码如下: #include "stdafx.h"#include<iostream>#include<Windows.h> using namespace std; int GetComList_Reg(){ HKEY hkey; int result; int i...
2021-03-19 17:44:23 153
转载 Windows下用DirectShow查找摄像头(含分辨率)和麦克风
在视频聊天、视频会议、在线监控和视频展台等项目中,需要查找出本地电脑上连接的所有摄像头,网上流传比较多的方式是ffmpeg的方式,这种方式可以跨平台,不同的平台下调用不同的库。这种方式在控制台直接打印了摄像头的信息,无法(或者说我暂时没找到)在内存中获取,因此直接采用了DirectShow的方式,DirectShow枚举IMoniker和Ipin。因为网上的文...
2021-03-19 09:36:32 3582
转载 MFC中改变按钮颜色的方法
本文参考学习 https://blog.csdn.net/zxccaoya/article/details/54142523 而来。 这里介绍mfc 中改变按钮颜色的最简单方法。 使用CMFCButton类 在mfc 的Dialog 或者 Form 中添加一个按钮,但注意是MFCButton。 MFC自带的MFC Button Control控件等按钮可以修改颜色,还能添加图片,设置字体...
2021-03-08 16:17:47 3567
转载 MFC改变Button按钮的背景色
1.为Button按钮添加成员变量 按钮 添加成员变量 2.在…Dlg.h文件中,将自动生成的成员变量由CBuuton类型更改为CMFCButton CMFCButton m_roi_delete;1 3.在OnInitDialog()初始化函数中,或者需要的位置添加更改背景色的控制语句,如: m_roi_delete.SetFaceColor(RGB(128,128,128),true);1 4.执行结果 ..
2021-03-08 16:16:12 852
转载 C++11实现一个加载dll并调用其中函数的dll帮助类
在C++中调用dll中的函数比较繁琐,调用过程如下:在加载dll后还需要定义一个对应的函数指针类型,接着调用GetProcAddress获取函数地址,再转成函数指针,最后调用该函数。如下: void TestDll(){ typedef int(*pMax)(int a, int b); typedef int(*pGet)(int a); HINSTANCE hDll = LoadLibraryA("mydll.dll"); if (hDll == nullptr) return; pMax Ma
2021-03-08 15:55:42 831
转载 VC++ LoadLibrary失败,错误126(找不到指定的模块)
在VS中调用一个资源模块dll,LoadLibrary返回值为NULL,没有加载成功。GetLastError后原因为“找不到指定的模块”!代码如下: HINSTANCE hInst = ::LoadLibrary(_T("E:\Test\KvDumpTool\Debug\kvDumpToolCHS.dll")); if (hInst) { AfxSetR...
2021-03-08 15:52:23 2076
转载 MFC双击Button没有进入事件代码,而是弹出“添加类向导”窗口
问题:当双击 Button 时,没有进入 OnBnClickedButton1() 事件,而是弹出了一个“添加类向导”的窗口,如下图所示: 原因:是因为我修改了窗口的 ID,如下所示: 解决办法:到 xxx.Dlg.h 头文件中,找到“对话框数据”,下面有一个 enum{},将其中的 ID 改为窗口实际的 ID 就可以了,如下: 改为 ...
2021-03-08 15:33:26 1272 1
转载 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. 错误解决
MFC调用dll时出现了一个错误,如下: Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call...
2021-03-08 15:24:59 858
转载 release下无法命中断点,无法查看变量值
release下无法查看变量值,提示变量需要堆栈帧。 解决方法: 将项目右键-属性-配置属性-C/C++/优化,优化一项选择禁用。 将项目右键-属性-配置属性-链接器-优化, 关闭 ...
2021-03-08 15:08:06 725
转载 解决SDL_Quit后再次启动SDL视频渲染无画面问题
背景 工作中使用MFC+SDL进行视频渲染显示,有下述现象: 1、每次播放开始时使用SDL_Init进行初始化,播放结束时使用SDL_Quit释放资源,再次播放开始时看不到画面,播放结束再开始只是播放功能的启停,此时进程正常运行,也未对MFC对话框及其控件做操作,此时数据流正常,只是画面无显示; 2、进程退出再启动后第一次播放画面正常; 3、将SDL_Init和SDL_Quit分别放到进程启动后和进程退出前,播放开始不执行SDL_Init,播放结束不执行SDL_Quit,反复开始和结束播放,画面正常。
2021-03-08 14:57:30 508 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人