随笔分类 -  WIN32编程

摘要:如果是标准的C++代码、直接以下代码便可以把所有的参数输出了#include <windows.h>int main(int argc, char* argv[]){ for(int index = 0; index < argc; index++) { printf("%s\n", argv[index]); } return 0;}比如程序名是test.exe、运行命令了test.exe test那么argv[0]就是test.exe、argv[1]便是test但是在一个标准的VC控制台程序里、入口函数是_tmain而不是main、这就... 阅读全文
posted @ 2012-07-25 20:19 klobodnf 阅读(364) 评论(0) 推荐(0)
摘要:默认情况下、莪们可以使用TTF_RenderUTF8_Blended()函数来渲染UTF8文字到视频窗口中、但由于中文windows本地环境并非unicode编码而是gbk编码、这就涉及到多字节(双字节)转换成宽字节的问题了、因此还需要用一个小函数转化一下才能输出到SDL_tff中、注意其中使用到的函数要使用到windows.h头文件char* localeToUTF8(char* src){ char* buf = NULL; int nRetLen = 0; wchar_t* unicode_buf = NULL; // *function: MultiBy... 阅读全文
posted @ 2012-07-11 16:33 klobodnf 阅读(1238) 评论(0) 推荐(0)
摘要:一般来说、迩会安装CodeBlocks with MingGW、如果迩不安装这个版本的话、那么CodeBlocks安装包就不会自带一个编译器了、除非迩有别的编译器、比如VC的编译器、或者是其它版本的、莪要说的是、CodeBlocks是一个开源的C++ IDE、也就意味着可以支持多种编译器、所以可以支持就表示可以配置编译器选项、所以迩配置错误当然就是编译不了啦、这就是多种选择的弊端、囧、在主菜单点击settings>compiler and debugger、假使迩使用了MingGW带的编译器、那么这个编译器便是GNU GCC Compiler、在Global compiler setti 阅读全文
posted @ 2012-07-10 11:42 klobodnf 阅读(3448) 评论(0) 推荐(0)
摘要:原文地址:http://blog.csdn.net/lsmdiao0812/article/details/3173374LARGE_INTEGER tima,timb;QueryPerformanceCounter(&tima);在 Windows Server 2003 和 WindowsXP 中使用 QueryPerformanceCounter 函数的程序可能执行不当QueryPerformanceCounter 來精確計算執行時間QueryPerformanceCounter 來精確計算執行時間// 這個程式展示了如何使用QueryPerformanceCounter 來精確 阅读全文
posted @ 2012-07-06 10:40 klobodnf 阅读(777) 评论(0) 推荐(0)
摘要:如果说到把执行结果打印到文件中、迩一定会想起输出重定向符>或>>、只不过输出重定向只能够输出到文件或者屏幕中、无法同时输出、所以这时就有了tee这个工具了简单来说吧显示文件命令lsroot@ubuntu:~/test_dis# ls | tee log_filelog_filereadmeuploadutilities执行命令ls | tee log_file执行ls的同时使用管道把内容交给tee处理然后tee把ls的执行结果输出到屏幕的同时再输出到log_file文件中、如果log_file不存在则创建、存在则覆盖、如果迩想是添加到log_file的文件尾而不是覆盖、可以添 阅读全文
posted @ 2012-06-21 12:30 klobodnf 阅读(1032) 评论(0) 推荐(0)
摘要:本来还想动动笔写写的、不过这实在是太多人写过了、直接帖了帖、对于狠多程序还是非常有实际意义的、就算迩不想写win32的应用程序、迩写SDL或者写openGL也总算是个win32框架的程序吧、有了这个、就可以不管剩下的细节了、尽情的在SDL等等中挥舞吧注意一点就是一定要包含windows.h这个头文件、还有就是windows的main声明、其它也没什么了、int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)http://blog.csdn.net/hustsp 阅读全文
posted @ 2012-06-17 12:36 klobodnf 阅读(226) 评论(0) 推荐(0)
摘要:http://wenku.baidu.com/view/f9d8613510661ed9ad51f3ff.html 阅读全文
posted @ 2012-06-15 16:34 klobodnf 阅读(186) 评论(0) 推荐(0)
摘要:Secret Maryo Chronicles是一款类似于马里奥的开源游戏、是优秀2D模版卷轴游戏的典范、是学习2D游戏设计的好材料这是个由C++写的游戏、使用了openGL+SDL作为主框架、以及CEGUI作为界面控制题外话:MS现在开源游戏都狠流行用openGL写、开放平台是一方面、但也有些商业游戏援用此API、目前主流PC玩家操作系统还是XP、而DirectX9以上又不再更新了、而openGL还是与时俱进的能在XP里面更新新的功能、所以还是非常有希望的、囧、不过如果打算跨平台的话、比如在手机啊、家用机像PS3这样的话、就只能用openGL系的API了、莪同时也使用了vs2010来进行编译 阅读全文
posted @ 2012-06-14 17:37 klobodnf 阅读(825) 评论(0) 推荐(1)
摘要:本文基于cegui0.7.6、于win7+vc2010、由于与其它版本存在一些差异、比如0.6.0、所以如果是老版本的话请参看那本CEGUI深入解析下载:1、cegui0.7.6的源码包http://sourceforge.net/projects/crayzedsgui/files/CEGUI%20Mk-2/0.7.6/CEGUI-0.7.6.tar.gz/download2、cegui0.7.X的vc2010的依赖包http://sourceforge.net/projects/crayzedsgui/files/CEGUI%20Mk-2%20MSVC%2B%2B%20Dependenci 阅读全文
posted @ 2012-06-13 10:30 klobodnf 阅读(1820) 评论(0) 推荐(0)
摘要:确切的说opengl已经包括在vc2010里面了、所以无需任何的安装、只要输入相应的库文件和头文件便可以了、下面是个简单的示例、使用vc2010新建一个win32程序、下一步里选择新建空工程项目、然后再在Source Files里添加一个cpp文件、输入以下的内容、前两行是引入opengl的两个库文件、然后是引入两个gl的头文件#pragma comment(lib, "opengl32.lib")#pragma comment(lib, "glu32.lib")#include <windows.h>#include <gl/gl.h 阅读全文
posted @ 2012-06-12 00:51 klobodnf 阅读(1714) 评论(2) 推荐(0)
摘要:sdl有跨平台的directx之称、通常与opengl配合便可以实现3d游戏的开发、首先去http://www.libsdl.org/index.php下载sdl的vc包、注意是下载Development Libraries的版本、不是Source Code、当然迩也可以下载源码自己去用VC编译、不过比较麻烦就不说了、下载完后解压、里面有include和lib目录、这两个是最主要的、然后去到vc6的安装目录、通常在C:\Program Files\Microsoft Visual Studio目录下、进入vc98目录、看到include目录和lib目录、分别把sdl下载的头文件和库文件放在这两 阅读全文
posted @ 2012-06-11 23:34 klobodnf 阅读(1264) 评论(0) 推荐(0)
摘要:比如这段代码、在vc6.0是可以通过运行的for (int index=0; index < 8; index++){ cout << "index:" << index << endl;}cout << "index:" << index << endl;在这里、index是在for循环定义的、所以这里最后一个index为8但在标准C++之后、这里会是编译错误的、VS2008的C++标准支持明显比vc6.0好多了、所以在vs2008中编译是错误的、错误提示为 “index”: 阅读全文
posted @ 2012-05-30 11:52 klobodnf 阅读(206) 评论(0) 推荐(0)
摘要:#deine _RGB16BIT555(r,g,b) ((b&31) + ((g&31) << 5) + ((r&31) << 10))因为这个是16位色5551格式的XR4R3R2R1R0G4G3G2G1G0B4B3B2B1B0因此31转化成二进制与的话、就是5个1(11111)、假设传来的RGB值都为11111、那么B就为11111G就为1111100000R就为111110000000000所以三者相加就为111111111111111、刚好就一一对应上面的表格、因为PC机采用低字节在前的格式、数据通常是从低位到高位、而这个色彩位组却是相反 阅读全文
posted @ 2012-05-20 10:18 klobodnf 阅读(1464) 评论(0) 推荐(0)
摘要:请不要怀疑这篇文章是不是转载10年前的文章、NO! WIN98这个系统还真是有人用、虽然用不了迅雷、用不了QQ了、不过有些旧式的程式还是挺好的运行在这个环境的、比如VC6、比如WIN32的各种函数、囧、 说白点吧、实际上莪用这个家伙是因为盛行于C++编程的年代就是在2000年初这断时间、所有关于WIN32的经典书籍基本都在这个时段出现、所以嘛、旧式环境的搭建还是对旧教材的理解是十分必要的、毕竟、directX和windows虽然发展了这么多年、可是框架就已经在20世纪末也就已经基本定型了费话不多说了、默认情况下WIN98是不会安装文件共享功能、莪们安装好它吧、下面是一段转载的文章======= 阅读全文
posted @ 2012-05-11 01:03 klobodnf 阅读(3121) 评论(0) 推荐(0)
摘要:在默认的VC6环境、当迩使用PlaySound函数会报错PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;如果报是未定义的错误、那里因为迩未包含相关头文件、加上下面就可以了#include <mmsystem.h> // 定义PlaySound的头文件如果是报下列的链接错误error LNK2001: unresolved external symbol __imp__PlaySoundA@12那么在VC6下设置一下工程->设置->连接->工程选项在这个工程选项 阅读全文
posted @ 2012-05-04 14:50 klobodnf 阅读(614) 评论(0) 推荐(0)