C/C++
微澜-
经过了很久很久,久到好像过去了几个世纪的时间,才知道,自己应该去到外面看看;才知道,付出就是收获。
展开
-
使用echo写入多行文字到文件时换行的处理
使用echo写入多行文字到文件时换行的处理原创 2024-07-26 19:17:56 · 236 阅读 · 0 评论 -
getopt()中的optarg为null的原因
getopt()中的optarg为null的原因原创 2024-07-24 14:51:40 · 174 阅读 · 0 评论 -
简单加解密过程模拟
在加密这样的东西上花费时间,对于一般的应用又有什么用处呢?原创 2024-03-05 19:12:10 · 252 阅读 · 0 评论 -
c++中锁定数据出现读写错误的例子
这是一个典型的数据同步错误,也是一个涉及到函数封装颗粒度的问题。原创 2024-03-02 18:05:57 · 286 阅读 · 0 评论 -
查询directshow错误句柄的字符串形式
directdraw的错误返回值查询原创 2024-03-02 17:52:58 · 234 阅读 · 0 评论 -
测试_strerror,errno,perror函数的使用
测试_strerror,errno,perror函数的使用原创 2024-03-02 17:42:05 · 103 阅读 · 0 评论 -
测试_tcsncpy_s 和 _tcscpy函数验证参数的各种情况
验证_tcsncpy_s 和 _tcscpy函数参数原创 2024-02-24 16:31:33 · 348 阅读 · 0 评论 -
内存溢出会导致模块测试正常,植入系统失败
内存溢出会导致模块测试正常,植入系统失败原创 2024-01-02 19:24:30 · 620 阅读 · 0 评论 -
日志:已知某天是星期几,不使用时间函数计算一个日期是星期几
不使用时间函数计算一个日期是星期几原创 2023-12-31 10:35:09 · 408 阅读 · 0 评论 -
转换YV12到RGB565图像转换,附YUV转RGB测试
转换YUV420P到RGB565,并写入ddraw表面显存pdst中,先创建转换表,然后把每一个像素进行转换。原创 2022-06-27 16:44:04 · 805 阅读 · 0 评论 -
大华设备播放过程中设置播放速度
在网络不稳定的时候,控制播放速度总是让人头痛的事情。设置播放速度有两种方法,一种是按照速度进行传递和计算,一种是按照帧率来计算。因为大华的sdk默认使用帧率来计算,如果换算成速率工作量很大,出力不讨好。不如直接调用接口,设置帧率。...原创 2022-06-27 16:23:58 · 1876 阅读 · 0 评论 -
大华sdk使用问题
这是十年前的问题了,大华sdk使用的时候存在速度控制,逆向播放,退出缓慢,定位控制,停止播放画面停留等问题原创 2022-06-27 16:11:42 · 2927 阅读 · 0 评论 -
axis设备的rtsp setup头中的url不能带参
使用axis服务器发现setup头中,必须把url?之后的参数取消掉才可以通过。也就是说,该消息头不能带参,这可能是那款设备的特例。原创 2022-06-27 15:53:47 · 373 阅读 · 0 评论 -
acmStreamOpen返回值问题
ACM(Audio Compression Manager,音频压缩管理器),它们负责管理系统中所有音频编解码器。只要在系统中注册号解码器就能使用acm解码,应用程序可以通过ACM或VCM提供的编程接口调用这些系统中现成的编解码器来实现音频或视频数据的压缩和解压缩。这东西看上去强大,对使用者却很不友好,不好用。.........原创 2022-06-21 17:29:36 · 183 阅读 · 0 评论 -
Windows中的wchar_t对应android中的什么编码?(蓝牙传输中)
Windows端连接android蓝牙发送字符串,发送端直接使用wchar_t发送,Android蓝牙接收后显示不正常。到底应该使用什么编码接收呢?原创 2022-06-14 16:43:27 · 263 阅读 · 0 评论 -
在Visual Studio 开发android时使用静态库a项目
前面讲了如何在Visual Studio android开发中使用so文件,那么a文件怎么创建使用呢?原创 2022-06-10 18:34:31 · 752 阅读 · 0 评论 -
使用Visual Studio 添加和调用动态库SO项目
最近接触Visual Studio开发android库的东西,发现创建并使用C++ so文件和a文件比android studio简化了很多,虽然说as在开发android上还是霸主地位,但是这个方向上,vs还是大有作为的。原创 2022-06-10 18:18:11 · 2311 阅读 · 1 评论 -
尝试使用Visual studio编写Android程序C++的跨平台开发Android
Vs编写android程序看上去有3种:Xamarin,Xamarin-Form(很快就会被MAUI代替), C++的跨平台开发Android。本文先看看官方的解释,然后尝试下C++的跨平台开发Android的使用效果。如果能够解决调试问题的话,在编写c++模块上还是有优势的...原创 2022-06-08 14:28:48 · 2045 阅读 · 0 评论 -
C中使用宏处理双向链表的经典例子
说明:这是一个在开源代码osip中使用的双向链表宏代码,堪称经典。这里贴出其中代码first_element是一个双向链表的元素指针,并不分配空间。element是一个占用空间的实际元素。从链表删除元素并不释放元素空间代码:#define REMOVE_ELEMENT(first_element, element) \ if (element->parent==NULL) \//element是头元素 { first_element原创 2021-12-04 17:13:21 · 1061 阅读 · 0 评论 -
VC抛出带GetLastError()错误的异常
说明:十几年前,自己还在使用VC,有些地方需要特别注意,如果进入该逻辑就应该抛出异常。转发winrtp中抛出异常函数,在不符合逻辑的地方,直接写入MTVERIFY("这个地方有问题");要说它有什么特别之处吗?我觉得是它的宏定义很有特点。代码:/* *MtVerify.h *Error handing for application in "multithreading applicationgs in win32" */ #pragma comment(lib,"USE原创 2021-11-27 22:02:48 · 198 阅读 · 0 评论 -
VC中将中英文混合的字符转unicode的例子
在2005遇到的一个例子,记录下来的。一段有趣的程序:有个需求:需要将中英文混合的字符从GPRS模块中发出去,把“M中?”转换成unicode代码放在outmsg中后,需要加一个“ctrl+z”即“^z”作为结束符通知模块发送。代码:下面例子先行测试: CString str="M中?";//多字节 WCHAR szWideBuffer[20];//宽字节空间 memset(szWideBuffer, 0, sizeof(WCHAR) * 20);//初始化 MultiByte原创 2021-11-27 20:37:10 · 241 阅读 · 0 评论 -
当年的扒拉oSIP代码的经历
描述:2005年的时候,还没有软件的集成度还没现在那么高,自己也年轻,曾经预研过sip,因为也只是自己一个人在那里鼓弄,最后的结果也没有真的应用到产品,而是使用了第三方插件intellIPhoneSDK。这个项目要实现什么功能呢?就是需要在项目中可以打电话到对方手机。对这个功能实现的只有自己一个人,经理对我很支持,在业务逻辑方面做支撑。一共经历3各阶段,winrtp阶段,osip阶段,intellIPhoneSDK阶段。原创 2021-11-22 13:06:09 · 378 阅读 · 0 评论 -
G729调用方法及使用wavlib播放出现颤音的解决方法
编者:李国帅qq:9611153 微信lgs9611153时间:2005-11-30 调用方法:#include "G729Codec.h"#include <string.h>#include "g729a.h"#pragma comment( lib ,"../bin/g729a.lib" )//////////////////////////////////////////////////////////////////////// Construction.原创 2021-02-15 15:02:00 · 598 阅读 · 0 评论 -
WinRTC中的简单音频混频器代码
编者:李国帅qq:9611153 微信lgs9611153时间:2005-11-1 背景原因:多年前曾做过sip客户端,测试过几个软件,其中包含有音频的简单混音,有兴趣可以看一下。做法仅仅把音频相加。代码://///////////////////////////////////////////////////////////////////////////#include "resource.h" // main symbols#include "windows..原创 2021-02-15 14:43:00 · 357 阅读 · 0 评论 -
带符号数的四种编码表示(原码 反码 补码 移码)
编者:李国帅qq:9611153 微信lgs9611153时间:2007-4-19 概念:正数反码 = 原码自身负数反码 = - 原码各位取反 = 原码自身 - 7正数补码 = 原码自身负数补码 = 原码自身 - 8移码: 字位0---15,中间位置是0,左移八位是移码的-8.例子x0x1x2x3 原码 反码 补码 移码0000 0...原创 2021-02-14 16:47:50 · 1740 阅读 · 3 评论 -
MFC编程中不要在消息和事件处理中使用sleep
编者:李国帅qq:9611153 微信lgs9611153时间:2010-3-28 背景:有次在MFC消息里延迟实现一些功能,结果导致刷新失常。下面的程序说明MFC编程的一些原则: 不能在消息和事件处理中进行sleep,那样别指望paint操作能做什么,程序也会陷入假死状态,直到事件处理结束,也许事件处理必须是无阻塞处理。 尽量通过postmessage而不要随便使用sendmessage,除非确认算法不耗时,并且无阻塞。代码:stru...原创 2021-02-14 16:22:44 · 452 阅读 · 0 评论 -
加载OpenGL出现 error C2381: “exit” : 重定义
编者:李国帅qq:9611153 微信lgs9611153时间:2013/11/29 背景原因:以前开发视频播放的时候,遇到这样的问题:使用vc加载OpenGl的时候,出现error C2381: “exit” : 重定义;__declspec(noreturn) 不同 编译OpenGL Red Book 的例子时出现错误,stdlib.h(406) : error C2381: “exit”: 重定义;__declspec(nore...原创 2021-02-10 17:57:00 · 475 阅读 · 0 评论 -
对_tcscpy,_tcsncpy_s,_tcscat系列函数进行复制字节,尾部处理的测试例程
编者:李国帅qq:9611153 微信lgs9611153时间:2010-2-27背景原因:在VC编码过程中,_tcscpy,_tcsncpy_s,_tcscat系列函数很容易出现错误,容易出现内存溢出,字符截断,字符乱码等很多问题。编写这个测试例子,主要用来测试_tcscpy,_tcsncpy_s,_tcscat系列函数在进行字符串赋值的时候,都是复制了那些字节,结尾如何处理。编程体会:为了安全,一定要保证逻辑上的容错性和正确性,另外,使用熟悉的成熟函数,不熟悉的函数尽量.原创 2020-06-26 14:49:58 · 2246 阅读 · 0 评论 -
CRITICAL_SECTION临界区同一线程和不同线程能不能重入?
编者:李国帅qq:9611153 微信lgs9611153时间:2012-6-21背景:有些东西需要不停地验证,不停地复习,才能避免忘记,深刻记忆,也会慢慢的深入。就像临界区,做一次实验竟然不能记住同一线程能不能重入,不同线程能不能重入。问题描述:编程中,最容易使用的是临界区,最频繁使用的也是它。而即便如此,也是容易出错的。多个线程之间频繁的使用,可能用多了会出现搞不清楚临界区是否已经锁定,到底是那个线程锁定了。这里并不讨论这问题。这里验证一个基本原则问题。通..原创 2020-06-26 14:40:37 · 1040 阅读 · 0 评论 -
参数const XX× pXX与参数const XX& xx的注意点
参数const XX* pXX与参数const XX& xx的注意点编者:李国帅qq:9611153 微信lgs9611153时间:20背景:VC中指针和引用是容易出错的地方,说起来简单,用起来需要小心;灵活运用可以避免错误。const XX*只能保证指针pXX不被改变,不能保证里面的数据不被改变const XX& xx参数可以保证对象xx内部数据不能改变总结:typedef struct xx{ int a; unsigned char *.原创 2020-06-26 14:22:52 · 501 阅读 · 0 评论 -
std for_each的泛型函数释放list容器中的堆成员
std::for_each的泛型函数释放list容器中的堆成员编者:李国帅qq:9611153 微信lgs9611153时间:2010-3-29实现一个功能,可能方法有很多,有些东西前人已经做了很多工作,也许一两行就可以解决我们数十行代码才能实现的功能。STL就是这样的工具集。容器不好管理,成员为动态堆的容器更不容易,在释放的时候尤其需要注意。这是从DSS中提取的应用例子,推荐给大家。1 定义泛型函数template <typename T>...原创 2020-06-26 14:15:08 · 260 阅读 · 0 评论 -
函数和虚函数对struct结构体大小的影响
编者:李国帅qq:9611153 微信lgs9611153时间:20背景:在网络传输程序中,往往把数据封装到结构体中统一传输,这时候,结构体的大小就会很重要,不注意的话,容易造成数据的丢失或者溢出。在实际的使用中要注意分析VC的分配变量的分配策略,这样的话可以避免一些错误。下面使用例程测试函数对结构体struce或者class大小的影响。例程:普通结构体struct xxx0{ double y;//8 ...原创 2020-06-26 13:53:33 · 1924 阅读 · 0 评论 -
struct结构体是否有构造和析构函数?
编者:李国帅qq:9611153 微信lgs9611153时间:2011-11-18自己在结构体的理解方面还是存在偏差的,结构体也是有构造和析构函数的。想当然的认为它没有面向对象的特征是不对的。公认区别:从语法上,在C++中(只讨论C++中), class和struct做类型定义时的区别:(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(二)成员的默认访问权限。class的成员默认...原创 2020-06-26 13:14:33 · 5075 阅读 · 0 评论 -
C++双继承显示四不像的特点(续)
编者:李国帅qq:9611153 微信lgs9611153背景原因:前面的《C++双继承显示四不像的特点》有些不妥,马,鹿,牛,驴都可有头、角、蹄、尾,所以构造四不像类的时候需要明确定义重载函数,不然就会出现类似如下的错误:error C2385: 对“蹄”的访问不明确1> 可能是“蹄”(位于基“马”中)1> 也可能是“蹄”(位于基“鹿”中)1> 也可能是“蹄”(位于基“牛”中)1>...原创 2020-06-25 20:03:35 · 333 阅读 · 0 评论 -
C++双继承显示四不像的特点
编者:李国帅qq:9611153 微信lgs9611153背景原因:翻看多年前的例子,觉得挺有意思。C++是不多见的支持多继承的语言了,这让我想起了四不像。大家端午节快乐!问题描述及期望效果:写了一个简单的小程序,打印出如下结果。/*麋鹿 有马的头麋鹿 有鹿的角麋鹿 有牛的蹄麋鹿 有驴的尾请按任意键继续. . .*/麋鹿(学名:Elaphurus davidianus):又名“四不像”,是世界珍稀动物,属于鹿科。因为它头脸像马、角像鹿、蹄子像牛.原创 2020-06-25 09:41:55 · 296 阅读 · 0 评论 -
实例揭示浮点数的比较:0.0000001f和1.0000001f是否相等
编者:李国帅qq:9611153 微信lgs96111532012-10-3背景原因:随着时间的推移技术的更新,许多的知识在改变,但是人的想法未必跟着改变。做这一行的人,未必一定要紧跟时代,但是却不能有固步不前的想法。问题描述及期望效果:记得以前总是使用if(xxx==0.000001)判断一个浮点数,这样正确吗?所需资源:VC先看一下浮点数的实际大小:内存跟踪发现浮点数的真实大小是会发生变化的。/* fy1 0.020000000...原创 2020-06-22 17:42:16 · 1648 阅读 · 0 评论 -
解决visual studio 2010下warning LNK4099 PDB vc100.pdb was not found问题
编者:李国帅qq:9611153 微信lgs9611153时间:2018-2-7问题描述及期望效果:以前用visual studio 2008时也碰到过类似问题, 问题产生的原因就是由于一个Solution下单多个Project是分开编译的,主项目和子项目的pdb文件名相同(默认都是vc90.pdb或vc100.pdb)从而造成冲突。这个问题对程序的执行不会产生影响,但会导致丢失部分调试信息。网上方法:在网上搜到解决办法,修改pdb文件设置的路径和名称。转贴于此。...原创 2020-06-21 21:45:06 · 891 阅读 · 0 评论 -
PtInRect和WindowFromPoint判断鼠标是否停留在指定窗口上
编者:李国帅qq:9611153 微信lgs9611153时间:2012/06/20背景原因:在vc界面程序的开发中,会遇到这样的需求,当鼠标悬停在当前程序的某个自定义控件窗口上时,显示某些信息或者进行某些操作。那么就会碰到,如果控件没有在前台显示或者被半遮挡,进行误判怎么办?问题描述:下面如果打印记录(XXXCtrl:1) (2012/06/20 10:09:34) CDlgPlayer::OnTimer MoveOver Player!那么鼠标是否在控件上放呢?...原创 2020-06-20 19:45:10 · 698 阅读 · 0 评论 -
更改项目字符集属性需要注意_T(“XXXX”)的差异
(TCHAR*)"XXXX%x";与_T("XXXX%x")不同编者:李国帅qq:9611153 微信lgs9611153时间:2009-04-10问题描述及期望效果:有些错误并不是马上出错,而是并非按预期进行。(TCHAR*)"XXXX%x";与_T("XXXX%x")一样吗?使用TCHAR* p = (TCHAR*)"XXXX%x";_tprintf (p, x << 16);可以正常打印信息吗?仔细看了才知道怎么回事 。-------直接更改项目原创 2020-06-16 13:43:41 · 301 阅读 · 0 评论 -
有损的位移操作《》
有损的逆操作<<>>编者:李国帅qq:9611153 微信lgs9611153时间:2009-04-10问题描述及期望效果:有时候,可能会遇到一些问题,自己觉得很难找到原因,网上搜索又很难找到答案,问别人又不知道如何开口。这时候,可能就是因为自己遇到的问题太简单了,以至于很少人在网上提问。根本的原因可能就是基础不牢。每种基本数据类型都是有长度的,而且唯一运算可能截断数据。所需资源:VC测试:源码#inclu...原创 2020-06-14 20:39:08 · 131 阅读 · 0 评论