C/C++
努力学习_提高自己
这个作者很懒,什么都没留下…
展开
-
Win10下VS2017的一个非常奇怪的编码问题
操作系统:Win10IDE:Visual Studio 2017过程:1)新建项目 -- Visual C++ -- Windows桌面--控制台应用2)新建一个源文件test.cpp,在资源管理器中使用记事本打开,并选择另存为,观察其编码为UTF-8但是如果在VS中查看(使用高级保存选项),其编码格式为GB23123)输入一点内容(包含预编译头文件,以及一句简单注释):#include "pch.h"/*test*/之后再次在记事本中另存为查看编码为UTF-8原创 2020-07-19 12:45:05 · 868 阅读 · 0 评论 -
用C语言编写钢琴小程序
网上搜索键盘钢琴,可以搜索到不少小游戏,最常玩的就是Flash小游戏,26个按键的后来想用C语言自己实现一个,没有界面~~控制台的。。原理很简单,先在控制台中获取按键事件,在按键事件中,开一个线程,这个线程就是专门用来播放键对应的音效mp3的。为什么要用线程呢,因为直接按键播放的话,如果不把mp3播放完,就无法再播放同一mp3,用线程就没有这个问题了。线程函数中,就是使用mciSe原创 2013-08-12 09:32:58 · 12176 阅读 · 2 评论 -
C版弹钢琴程序进化版——Key下落效果
在http://blog.csdn.net/jiratao/article/details/9916203文中,使用C语言编写出了能弹钢琴的程序,但是想要弹的时候,还得打开曲谱文件,对照着去弹,如果一个不小心,看花了眼,那就~~所以一直在想,怎么实现像手机游戏那样的下落块对应按键,最终,终于让我实现了。先上个成品图,当然还是有些粗糙 哈哈,效果还不错吧,我还在程序加入了一个原创 2013-12-12 17:22:43 · 2236 阅读 · 2 评论 -
printf的实现原理
本文转载自http://blog.sina.com.cn/s/blog_56e8acf40100kaer.html printf的声明int _cdecl printf(const char* format, …);_cdecl是C和C++程序的缺省调用方式_CDEDL调用约定:1.参数从右到左依次入栈2.调用者负责清理堆栈3.参数的数量类型不会导致编译阶段的错转载 2013-12-31 10:55:38 · 2125 阅读 · 0 评论 -
C++里将float数据转换到wchar_t数组中
过程太曲折了,,不得不记录以下;写程序的时候,用到了wchar_t数组来处理数据,其中需要将一条数据原创 2014-07-08 23:24:12 · 3938 阅读 · 0 评论 -
MFC CListCtrl中的第0列文字不能居中
备忘录:今天看到群里有人讨论ListCtrl中report视图下,第0列的列头文字不能设置居中。想想我以前的做法都是在创建好了各列后,将第0列的宽度设置为0,“隐藏”起来,当然,这是假隐藏,因为还是可以通过拖动列头将其拉回来的。甚至还想到了重绘控件,最后还是没有实现。。后来群友提供了一种办法,就是在创建列的时候,从第1列开始插入,m_list.InsertColumn(原创 2012-12-27 10:21:22 · 4363 阅读 · 0 评论 -
C语言实现扫雷游戏(控制台可视化界面)
先放上完成效果图:开始页面游戏过程:说明:整个游戏过程为键盘控制,上下左右进行格子选择,1进行标记或取消标记,2进行怀疑或取消怀疑,回车会打开当前格子(标记的格子不可打开,如果是已经打开的格子,再回车时会根据当前数量周边是否全部标记来决定是否继续翻开周边格子,类似与Win上的双击),自动翻开的判定上,只会连续翻开空白区域。源代码下载地址:https://down...原创 2019-05-16 15:50:32 · 3723 阅读 · 0 评论 -
C/C++解析文件路径,获取盘符、路径、文件名及扩展名
其实也不算原创了,都是抄的msdn的内容。。。。经常要处理跟文件相关的东西,免不了要做一些解析路径以及文件名扩展名的工作。以前傻傻的自己去strstr斜杠,然后慢慢匹配解析,后来才发现有API做好了相应的工作了。。。函数原型:void _splitpath( const char *path, char *drive, char *dir, char *fname, char *e原创 2013-08-05 11:30:15 · 18744 阅读 · 0 评论 -
scanf的另一种用法
scanf除了平时使用的类似于scanf("%d", &a);等用法,还有一些不常见的用法,但却很有用。例如可以输入带空格的字符串:char buf[80] = {0}; scanf("%[^\n]", buf); 原理是使用了[...]和[^...]这个转换符,这是一种很少见的用法,但却很有用 。例如#include main() {原创 2012-08-15 09:09:27 · 712 阅读 · 0 评论 -
CTime与DWORD之间的转换
<br />转自 http://blog.csdn.net/ddl007/archive/2009/07/01/4313770.aspx<br /> <br />CTime t(2009,7,1,16,58,50); //时间类型赋值<br />DWORD dwTime = t.GetTime(); //将CTime状换为DWORD类型<br />CTime time(dwTime);//将DWORD转换为CTime<br />time.GetDay();<br />time.GetYear();<br /转载 2010-12-01 17:10:00 · 1312 阅读 · 0 评论 -
获取进程的句柄数
<br />本来准备用<br />http://blog.csdn.net/juyingmin/archive/2010/07/30/5775397.aspx<br />中的方法,来获取句柄数,查msdn时发现,vs2008中可以直接使用GetProcessHandleCount 这个API来获取给定PID的句柄数,再一看原文章。。第一句就说了是VC6.0中的用法。。。汗,没看到~~<br />下面是代码,枚举当前所有进程的句柄数<br /> DWORD dwHandles; HANDLE hCurPr原创 2010-10-28 10:39:00 · 6375 阅读 · 0 评论 -
自动刷新IE
<br /> 现在大多浏览器都有了自动刷新功能了,IE8没用过不知道有没有,系统里还是IE7,没有自动刷新,之前做网卡驱动要做测试,刷新网页看能不能捕获到发出去的包,所以就像写一个自动刷新IE的Demo。<br />大致思路是这样:<br />先找到IE的窗口句柄,然后给这个句柄定时发送F5这个按键消息,这样IE就能定时刷新了。<br />首先,如何找IE窗口,因为IE窗口的标题是随访问的网页变化的,不过其最后的- Microsoft Internet Explorer是一直都有的,(注,这是XP下,WIN原创 2010-10-28 11:16:00 · 6325 阅读 · 0 评论 -
高质量c++(指针参数是如何传递内存的?)
文章来自 http://blog.csdn.net/zgbsoap/article/details/567939指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(ch转载 2012-01-05 14:11:59 · 653 阅读 · 0 评论 -
基于MFC对话框的Windows服务程序
最近需求要写个服务程序,部分功能用MFC类库实现将非常方便,因此就没打算使用win32的服务程序,虽然那样对于服务很简单。首先写好mfc的对话框程序,调试什么的,功能也都完成好。这一部分和平常的mfc对话框程序没有差别,之后的服务启动后打开的就是现在所完成的。重点是服务部分。这里我找了很多文章,后来在http://www.vckbase.com/document/viewdoc/?id原创 2012-04-26 11:22:21 · 6860 阅读 · 0 评论 -
野指针--程序崩溃的炸弹
原文作者 http://hi.csdn.net/redhat7890 我在EXE应用程序中使用DLL,该DLL包含对话框资源,该对话框是我从别的工程中复制进来的,运行EXE应用程序时对话框窗口正常打开,一切功能皆正常,但是在窗口关闭时出现异常,Debug调试时出现异常中断,查看堆栈发现是DoModal()调用过程中,DestoryWindows()里产生的转载 2012-04-26 10:48:19 · 3812 阅读 · 0 评论 -
7zip SDK中C++模块的编译
原文博主标题本是:7z系列之一:7zip SDK中C++模块的编译不过好像就写了这一个·· 原文如下:---------------------------------------------------------分割线------------------------------------------------------------------- 7z系列之转载 2012-06-16 09:14:53 · 3836 阅读 · 0 评论 -
C++调用C
转载自:http://blog.163.com/sean_1010/blog/static/11080322200952633111975/ 以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);转载 2012-08-06 16:29:36 · 954 阅读 · 0 评论 -
获取磁盘信息
BOOL WINAPI GetVolumeInformation( __in LPCTSTR lpRootPathName, __out LPTSTR lpVolumeNameBuffer, __in DWORD nVolumeNameSize, __out LPDWORD lpVolumeSerialNumber, __out LPDWORD lpMaximumComponentLength,原创 2010-08-20 15:25:00 · 555 阅读 · 0 评论