在老版本号的VC编译器上.关键调用是下面2句: InitCommonDialogs(); HWND hwndDialog = CreateDialog(hInstance, "IDD_XXX", ...); 可是在新版本号的VS上,InitCommonDialogs这个API似乎已经没了,而CreateDialog还有,问题是,对话框的界面出不来.什么原因呢? 猜測InitCommonDialogs这个API注冊了默认的系统对话框窗体类,这样CreateDialog的第二个參数才干以字…
前言 起初只是想做一个直接读取视频文件然后播放字符动画的程序.我的设想很简单,只要有现成的库,帮我把视频文件解析成一帧一帧的原始画面信息,那么我只需要读取里面的每一个像素的RGB数值,计算出亮度,然后根据亮度映射到某个字符,再把这些字符全部拼起来显示出来,事情就完成了.于是我就开始研究怎么用 FFmpeg 这个库,网上还是能比较容易找到相关的教程,不久我就把目标实现了. 之后我就想,要不干脆就做一个正经的播放器看看吧,结果,我就遇到了一堆的问题,写这篇文章的目的,就是把这些问题的探索过程,和我自…
public class Father { protected void server(int i){ switch (i){ case 1: methodone(); break; case 2: methodtwo(); break; case 3: methodthree(); break; default: System.out.println("error"); } } protected void methodthree() { System.out.println(&qu…
Win32 API进行程序设计具有很多优点:应用程序执行代码小,运行效率高,但是他要求程序员编写的代码较多,且需要管理所有系统提供给程序的资源,要求程序员对Windows系统内核有一定的了解,会占用程序员很多时间对系统资源进行管理,因而程序员的工作效率降低. 简单实例 #include <iostream> #include <windows.h> using namespace std; DWORD WINAPI ThreadProc1(LPVOID lpParameter) {…
我们一个项目中有如下代码: time_t loc_time; loc_time = time(NULL); localtime_r(&loc_time,&ptr); 这段代码本意是获取本地时间,用于生成日志中的时间戳. 但是这个有个问题,当机器的时区变化后,生成的时间信息并不随着时区变化. 查了localtime_r的man手册,发现有下面一段话: According  to  POSIX.1-2004, localtime() is required to behave as thoug…
先看这两段代码: #include <iostream> #include <vector> #include <algorithm> using namespace std; class Subject { public: Subject(){} virtual ~Subject(){} virtual void attach(MyObserver *observer)=0; virtual void detach(MyObserver *observer)=0; v…
Detours 当然是用detours,微软明显高腾讯一筹,同上,至今没失败过.写这种HOOK一定要再写个测试程序,不要直接HOOK你的目的程序,例如QQ,因为这样不方面更灵活的测试.说明一下:Detours是微软开发的一个函数库(源代码可在http://research.microsoft.com/sn/detours 免费获得)用于修改运行中的程序在内存中的影像,从而即使没有源代码也能改变程序的行为.具体用途是:拦截WIN32 API调用,将其引导到自己的子程序,从而实现WIN32 API的…
一丶什么是Win32 API? 微软为了保护操作系统的安全性和稳定性,把系统分为内核层和用户层(内核层的代码只能在当CPU的特权级为R0状态下执行,用户层的代码在CPU特权级为R0和R3都能执行),windows在内核层构建了一套管理和保护机制,用于维护系统的正常运行,这些机制的实现被称为系统内核.为了区别于windows的内部实现,把我们日常使用的应用程序所运行的环境称为用户层,此时CPU特权级为R3,无法调用系统的内核函数.但是,只有内核函数才能操控硬件,所以windows又提供了可在用户层…
CreateFile打开文件要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门. ReadFile从文件中读取字节信息.在打开文件获得了文件句柄之后,则可以通过该函数读取数据. WriteFile向文件写入字节信息.同样可以将文件句柄传给该函数,从而实现对文件数据的写入. CloseHandle关闭文件句柄.打开门之后,自然要记得关上. GetFileTime获取文件时间.有三个文件时间可供获取:创建时间.最后访问时间.最后写时间.该函数同样需要…
从.NET平台调用Win32 API Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微软留给我们直接控制Windows的接口. 一.    基础知识 Win32 API是C语言(注意,不是C++语言,尽管C语言是C++语言的子集)函数集. 1. Win32 API函数放在哪里? Win32 API函数是Windows的核心,比如我们看到的窗体.按钮.对话框什么的,都是依靠Win32函…