C/C++
duke56
逃课砖家...
展开
-
C/C++ 判断当前操作系统语言、获取当前操作系统使用语言 GetSystemDefaultLangID
#include <stdio.h>#include <Winnls.h>#pragma comment(lib,"Kernel32.lib")int main(void){ LANGID lid = GetSystemDefaultLangID(); // 获取系统默认ID switch ( lid ) { ca...原创 2020-01-06 17:30:00 · 19691 阅读 · 4 评论 -
CMD窗口显示UTF-8字符。简单办法让VC、VS显示UTF-8字符
1、打开CMD.exe命令行窗口2、通过 chcp命令改变代码页,UTF-8的代码页为65001chcp 65001 # 切换代码页到UTF-8chcp 936 # 恢复默认显示,GBK执行命令后如下图:执行:chcp 65001命令后截图执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。3、修改窗口属性,改变字体在命令行标题栏...原创 2019-12-24 18:38:41 · 18455 阅读 · 0 评论 -
C/C++编程 VC、VS判断操作系统、获取系统版本。多种方法判断操作系统、查看系统版本。
本文通过多种方法获取、判断操作系统版本获取系统版本号的有个GetVersion()、GetVersionEx()函数,判断操作系统版本有VerifyVersionInfo()以上三种函数在Win7以上的系统变得不灵了,获取到的都是:6.2。对于使用VC、VS版本比较低的用户,可能并不支持versionhelpers.h,即并不支持以下等函数直接来判断。IsWindows7SP1...原创 2019-12-23 17:45:01 · 21578 阅读 · 1 评论 -
Windows系统 Prefetch目录 *.pf 文件解析 -- 探索程序运行记录、保护隐私
一、前言1、本文说明如果喜欢打开XX软件看XX视频等,看了多少次,什么时候看的,都会被记录下来,用软件来查看一下,全部的隐私都没有了。家里的小孩玩的啥游戏,玩了多少次,也都可以看得一清二楚。查看*.pf格式的软件有:WinPrefetchView、LastActivityView等。本文带你深入了解pf格式文件所隐藏的内容,并用C/C++编写了个小软件,实现了隐私读取和分析。...原创 2019-12-23 17:51:34 · 24589 阅读 · 1 评论 -
C/C++编程 恶作剧限制鼠标移动、限制鼠标在屏幕上的一个矩形区域内_ClipCursor
#include <stdio.h>#include <windows.h>int main(void){ printf("\n别害怕5秒后你的鼠标就可以正常使用了^_^\n"); RECT rect; //左上角 rect.top = 100; //上 rect.left = 100; //左 //右下角...原创 2019-12-23 17:43:01 · 18170 阅读 · 1 评论 -
C/C++编程 获取调用其他程序的输出、匿名管道读写
用途 调用外部命令来协助完成某些功能 如很多扫描工具实际上是调用nmap来帮助扫描任务的 #include <stdio.h>//#include <string.h>#include <windows.h>int main(int argc,char *argv[]){ SECURITY_ATTRIBUTES sa; ...原创 2019-12-23 17:41:22 · 18075 阅读 · 0 评论 -
C/C++编程 在控制台上画图
#include <stdio.h>#include <windows.h>void ClearScreen(HANDLE hOut);//清屏int main(void){ HANDLE hOut; HANDLE hIn; hOut = GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出设备句柄 ...原创 2019-12-23 17:40:42 · 19670 阅读 · 1 评论 -
C/C++编程 MP3等音频文件播放
#include <windows.h>//两个头文件不能互换,要不然会出一大堆问题#include <vfw.h>//给VS2008或以上版本添加stdafx.h预编头文件#if _MSC_VER >= 1500// VC6.0拖曳编译不用stdafx.h头文件,这里VC6.0不给该头文件#include "stdafx.h"#endif//VC...原创 2019-12-23 17:39:52 · 20691 阅读 · 0 评论 -
C/C++编程 FindFirstFile、FindNext递归遍历硬盘文件
#include <stdio.h>#include <windows.h>//搜索文件函数int SearchFile(char *path){ char buffer[MAX_PATH] = {0}; sprintf(buffer,"%s\\*.*",path); WIN32_FIND_DATA pNextInfo;//保存文件信息...原创 2019-12-23 17:38:50 · 17413 阅读 · 0 评论 -
C/C++编程 关闭、重启、注销Windows系统
#include <stdio.h>#include <windows.h>/* GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄 LookupPrivilegeValue 查询进程的权限 AdjustTokenPrivileges 启用令...原创 2019-12-23 17:35:53 · 17493 阅读 · 0 评论 -
C/C++编写Windows窗口应用程序(Win32程序),非黑漆漆的控制台窗口
Windows应用程序是基于消息驱动的,任何线程只要注册窗口类都会有一个消息队列用于接收用户输入的消息和系统消息。一、 窗口的创建流程创建一个完整的窗口需要经过下面四个操作步骤: 设计一个窗口类(填写Win32程序必要信息) 注册窗口类 创建窗口 显示及更新窗口 二、相关函数及术语1、WinMain函数// Windows程序的入口函数...原创 2019-12-05 22:38:36 · 21816 阅读 · 1 评论 -
C/C++语言 Windows API更改文件、文件夹或注册表权限的所有者
C/C++语言, 调用Windows API更改文件、文件夹或注册表权限的所有者所用到的函数GetUserName //获取当前登陆用户名 LookupAccountName //获取用户名SID SetNamedSecurityInfo //ACL相关函数#include <stdio.h>#include <ac...原创 2019-11-29 19:42:54 · 19786 阅读 · 2 评论 -
Windows系统下GCC配置, MinGW-W64 GCC安装与配置,Dev-C++、CodeBlocks
在Windows系统下,除微软的VS外,大多使用GCC作为编译,现在的GCC并不是只能在Linux系统上才能使用的编译器,早已移值到了Windows系统下了。由于VS的庞大,很多人员只是学习一下C/C++语言,庞大的VS功能大多是用不到的,这时在Windows系统下GCC就是一个不错的选择。(需要学习Windows下应用程序开发的建议还是使用VS做为开发工具)现在的GCC其实是一个套...原创 2019-09-02 19:37:34 · 34043 阅读 · 2 评论 -
C语言main函数返回值详解
前言:本文程序代码均在Windows + mingw64环境下编译完成(gcc)C语言的main函数有两个标准写法// C99加入两种 main 标准写法int main(void) // 标准一写法// 和int main(int argc,char *argv[]) // 标准二写法int main(int argc,char **argv) // ...原创 2019-08-30 23:54:28 · 30656 阅读 · 0 评论 -
SQlite3中级篇(C/C++编程接口)
/*SQLite数据库SQLite是一个开源的嵌入式关系数据库,在2000年由D.Richard Hipp发布。SQLite能够减少应用程序管理数据库的开销,可逢移植性好,高效而且可靠。SQLite嵌入到应用程序中,与应用程序共用相同的进程空间,而不是单独的一个进程。从外部看,SQLite并不像一个关系数据库,但在进程内部,却是完整的、自包含的数据库引擎。*///应用到的函数:...原创 2011-12-04 19:28:40 · 18329 阅读 · 1 评论 -
const修饰符的作用
/*C/C++中规定,在变量前加const修饰符是将变量定义为常量,其值是不能修改的但这个不能修改也只是针对编译器而言*/#include <stdio h="">int main(){ const int a = 2; int *b,i = 0; printf("%d\n",a); b = (int*)&a;//强制转换一下,...原创 2010-08-19 22:18:00 · 17586 阅读 · 0 评论 -
C++调用C文件函数简单应用
通常情况下,编程都是用同种语言(或说格式),这样不大会出现不同语言这间的错误下边介绍一下,在C++语言(.cpp文件)下调用C语言(.c文件)的一种方法(下边分别是三个文件):/*Duke.cpp,编译环境:VC6.0*/#include #include "Duke.h"//包含.c的头文件(下边用到.c里的add函数)using namespace std;int main(原创 2012-03-01 19:53:06 · 18500 阅读 · 0 评论 -
SQlite3高级应用篇(C/C++编程接口)
/*/////////////////////////////////简介/////////////////////////////////SQLite是一种嵌入式数据库,它跟微软的Access差不多,只是一个.db格式的文件。但是与Access不同的是,它不需要安装任何软件,非常轻巧。很多软件都有用到这个家伙,包括腾讯QQ、迅雷(你在迅雷的安装目录里可以看到有一个sqlite3.dll的文...原创 2011-12-04 18:26:30 · 20744 阅读 · 2 评论 -
SQlite3初级篇(sehll命令)
命令行:创建数据库 sqlite3 test.db //在命令行下并进入命令行操作,而且不能在SQLite操作窗口创建 .databases //输入该命令可以查看之前创建的数据库 //输入.help可以查看帮助和相应的命令,记住help前边有个点!创建数据表 create table user(name,address,email); //创建user的表,后边为表的列值向数据表...原创 2011-12-04 19:08:51 · 17507 阅读 · 0 评论 -
如何解读返回函数指针的函数声明
逐步解读如下代码:int (*(*pf())())(){ return nullptr;}首先,要确定声明中出现的操作符的优先级显然,函数调用操作符()的优先级是高于指针解引用操作符*的,另外,小括号总是具有最高优先级其次,要确定在声明中标识符与某个操作符结合起来的时候有什么意义例如:a() //a是一个函数*a //a是一个指针由于函数...翻译 2015-01-21 18:18:27 · 17287 阅读 · 0 评论 -
指针常量和常量指针
指针常量和常量指针,const的作用原创 2015-02-08 22:24:56 · 17300 阅读 · 0 评论 -
链表的创建和删除,初识链表
#include #include #include typedef struct date//申明结构体{ char str; struct date *next;//用来指向下一个结构体指针} date;int main(void){ date *pS,*pE,*head = NULL;//定义三个结构体指针,head用来保存链头,pE保存链尾 date *Rhead原创 2010-07-25 16:34:00 · 19103 阅读 · 3 评论 -
_CRT_SECURE_NO_WARNINGS错误提示,解决办法
#include <stdio.h>int main(void){ char str[256] = {0}; scanf("%255s",str); printf("Hello World!\n"); printf("%s\n",str); return 0;}一个简单的C的Hello World,如果用高版本的VS来编译,会提示...原创 2016-09-01 21:35:53 · 162859 阅读 · 20 评论 -
C/C++柔性数组结构成员
/*C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其 他成员。柔性数组成员允许结构中包含一个大小可变的数组,sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小C语言大全,“柔性数组成员”看看C99标...翻译 2012-02-29 18:10:00 · 18350 阅读 · 0 评论 -
x86框架CPU的特点,高位存高位数值
#include <stdio.h>#include <string.h>typedef struct{ int date; char str[20];} data;int main(){ //VC6.0下,char = 1字节,int = 4字节(其它编译器自行调整) char ch[] = {0x12,0x34,0x56...原创 2010-08-14 21:28:00 · 20273 阅读 · 3 评论