自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Reiiden制作笔记H(OGRE Materilas/HLSL 的完整例子)

<br />Materilas的总结<br />Materilas所有属性列表在:OgreReadMe -> The OGRE Manual -> Scripts -> Material Scripts(可翻页)<br />MyOGREMaterials.cpp<br />#include "MyOGREMaterials.h"void MyOGREMaterials::createScene(void){ // 自建一个网格 Ogre::ManualObject* manual = m

2011-05-16 15:34:00 1215

原创 Reiiden制作笔记G(D3D的渲染流程)

<br />1 Device对每个顶点进行处理,有两种模式:<br />  ① 固定管线<br />  ② shader模式(VS)<br />  顶点数组A => 顶点数组B<br />2 裁剪、背面剔除。<br />  顶点数组B => 三角形数组C<br />3 光栅化。对于数组C中每一个三角形,首先把它们从透视空间映射到屏幕空间,然后找出它们在屏幕上覆盖的像素。对于每一个像素,根据它在三角形中的位置,通过三角形的顶点进行线性插值,计算出一个像素数据。所有三角形算出来的像素数据最后被存储到一个数组D中

2011-05-03 11:35:00 859

原创 Reiiden制作笔记F(OGRE中的CEGUI DEMO7 CEGUI::RenderEffect)

想在CEGUI中做点小特效,发现平移过来的CEGUI DEMO7点击事件都正常,特效死活出不来。检查原因在于CEGUI::RenderEffect需要每帧调用一次,只要在OGRE的帧监听中加入:CEGUI::System::getSingleton().injectTimePulse(evt.timeSinceLastFrame);附上Demo7特效的个人简化备注:class MyEffect : public CEGUI::RenderEffect{public: MyEffect() :

2011-04-20 14:51:00 4712 1

原创 Reiiden制作笔记E(OGRE编码总结)

这两天又被CEGUI的编码问题郁闷了,每次在编码问题都要纠结一下,这次彻底整理:一、概述1 Ascii    ASCII 只支持英语    ANSI编码 为了本地化,使用多个字节代替表示1个字符(GB2312 BIG5 JIS GBK)2 UNICODE    UTF16  使用16位来存放一个序号(DBCS 宽字符模式)3 UTF-8    不定长,不存在跨平台问题,中文一个占3个二、例子    1 ASCII 使用一个字节存放一个字符(SBCS)        Kuma8dao7 4B 75 6D 61

2011-04-13 13:36:00 949

原创 Reiiden制作笔记D(OGRE摄像机方向总结)

 想做一个从天上往地面上看的小地图,使用相机的时候出现许多问题。1 物体变形    摄像机默认是近大远小的椎体视角,小地图使用的是类似平行光的视角,需要:cam->setProjectionType(Ogre::PT_ORTHOGRAPHIC);2 setDirection不支持以Ogre::Vector3::UNIT_Y为参数:    原因:比如setDirection为向纸面内看物体A,此时Ogre的显示为A,而不是倒立的A,这是因为Ogre::Vector3::UNIT_Y是Ogre默认的'up'视角

2011-04-08 15:02:00 4376 1

原创 Reiiden制作笔记C(OGRE/CEGUI配置)

A OGRE SDK配置 环境:(OGRE_HOME)/Bin/$(ConfigurationName) Include目录:    $(OGRE_HOME)/include;    $(OGRE_HOME)/include/OIS;    $(OGRE_HOME)/include/OGRE;    $(OGRE_HOME)/boost_1_42; Lib目录:    $(OGRE_HOME)/lib/$(ConfigurationName);    $(OGRE_HOME)/boost_1_42/lib 

2011-04-06 10:08:00 1479

原创 Reiiden制作笔记B(OGRE中的向量Vector3的成员方法)

常量    static const Vector3 ZERO;    static const Vector3 UNIT_X;    static const Vector3 UNIT_Y;    static const Vector3 UNIT_Z;    static const Vector3 UNIT_SCALE;分别代表零向量、X轴单位向量、Y轴单位向量、Z轴单位向量和单位缩放因子(其实是不缩放),这些向量使用频繁,所以实现为常量。成员函数    重载[ ]操作符,通过下标1,2,3可以取x,

2011-03-21 14:37:00 1118

原创 Reiiden制作笔记A(OGRE坐标轴总结)

D3D坐标轴:世界坐标:是左手坐标系投影坐标:屏幕中心为原点(0,0),左上角为(-1,0, 1.0),右下角坐标为(1.0, -1.0)               Z缓冲0.0 - 1.0,最里面是1.0屏幕坐标(Windows):左上角为原点(0, 0),右下角为窗口大小(1024, 768)OGRE坐标轴:世界坐标:X,Z和D3D一致,Y轴相反未完,留着以后补

2011-03-19 11:13:00 893

原创 编译OGRE SDK例子

1 需要VS2008/VS2005 SP12 Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event..."       解决方法一:下载cmake-2.8.0-win32-x86.exe安装       解决方法二:右键点击SampleBrowser工程,打开属性,在Build Events中将Pre_Events项下面的Excluded From Build改为Yes后就可以成功buil

2010-09-30 12:05:00 1380

原创 VC与Python交互(四)(C执行Python文件)

extern "C" bool RunFyFuntion(char *strFilename, char *strModuleName, char *strFunctionName){ PyObject *pParams = NULL; PyObject *pModuleOld = NULL; PyObject *pModule =NULL; PyObject *pName = NULL; PyObject *pResult = NULL; PyObject *pDict = N

2010-09-16 15:06:00 2042

原创 VC与Python交互(三)(自定义Python模块/函数)

1 首先定义一个函数,其中PyArg_ParseTuple来获得参数,si表示第一个是string,第二个是intextern "C" static PyObject* SendStringInt(PyObject *pSelf, PyObject *pParams){ char* strMessage = 0; int nCount; if(!PyArg_ParseTuple(pParams, "si", &strMessage, &nCount)) { QDLogs.SendM

2010-09-15 15:07:00 2979

原创 VC与Python交互(二)(Pythoncore嵌入解决import site出错的问题)

1 打开Python25的lib文件夹,将所有文件拷出来,进入此目录执行python -OO compileall.py -f,将所有文件.py -> .pyo2 删除除.pyo之外的所有文件,然后打包为python25.zip3 在Python的初始化部分添加如下代码,将此zip添加到sys.path char szCmd[MAX_PATH]; char* szPath = "E://root//MyGame//lib"; sprintf(szCmd, "import sys/n"

2010-09-15 14:28:00 2130

原创 VC与Python交互(一)(静态编译Python的方法)

1 准备工作   a 到http://www.python.org/ftp/python/2.5.4/下个包Python-2.5.4.tar.bz2   b 进入Python-2.5.4/PCbuild8 ,打开解决方案pcbuild.sln   c 修改pythoncore的编译配置:     Config Type -> .lib     RunTime Library -> MT / MTD   d 按顺序编译      make_buildinfo      make_versioninfo    

2010-09-02 15:30:00 5228 3

原创 VC进程相关的学习(七)(简单的进程变速方法)

<br />需要做的就是HOOK GetTickCount、timeGetTime这两个函数,只要将返回值翻倍即可,注意的是,千万千万不要在这两个地方做什么多余操作,简单简单简单。

2010-08-26 11:59:00 1475

原创 VC进程相关的学习(六)(Detours的使用)

Detours提供了简单易用的函数接口来拦截WIN32 API调用。官方的下载地址为http://research.microsoft.com/en-us/projects/detours/,下载Detours Express 2.1安装之后还不能直接使用,编译流程如下:1 将Detours安装目录中的src拷贝至VS安装目录/Microsoft Visual Studio 9.0/VC/bin2 打开CMD控制台3 将/Microsoft Visual Studio 9.0/VC/bin/vcvars32

2010-08-25 13:49:00 1454

原创 VC浏览器相关的学习(八)(截获IE网络访问)

<br />经过上面进程的学习,已经达到截取网络访问的条件了,需要声明如下:<br />#include <WinInet.h> #pragma comment( lib, "WinInet.lib") // IEtypedef BOOL (WINAPI* PFN_HttpSendRequestA)(HINTERNET hRequest, LPCSTR lpszHeaders, DWORD dwHeadersLength, LPVOID lpOptional, DWORD dwOptio

2010-08-23 16:39:00 4586 2

原创 VC进程相关的学习(五)(API截获完美版)

通过IE测试发现,四中的方法只能获取用Depneds看到在上面加载的DLL,而后来加载的,以及DLL加载的DLL都是无法获得的。这里补充一个可以截取所有DLL包括LoadLibrary的方法:void MyHook::_writeProcessMemorySystem(LPVOID pDec, LPVOID pSrc, UINT nLength){ MEMORY_BASIC_INFORMATION mbi_thunk; VirtualQuery(pDec, &mbi_thunk, sizeof(

2010-08-23 15:08:00 2000

原创 VC进程相关的学习(四)(API截获)

一些写入保护的地址,可用下面方法修改    BOOL MyHook::writeProcessMemorySystem(BYTE* pData, const BYTE& byte){ MEMORY_BASIC_INFORMATION mbi_thunk; VirtualQuery(pData, &mbi_thunk, sizeof(mbi_thunk)); // 查询页信息 VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk

2010-08-21 16:02:00 1306

原创 VC进程相关的学习(三)(模拟键盘鼠标)

<br />模拟鼠标键盘比较简单,只放例子<br />鼠标定位:<br />SetCursorPos(point.x, point.y);<br />鼠标点击:<br />mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);<br />键盘点击:<br />keybd_event(0x52, MapVirtualKey(0x52, 0), 0, 0);keybd_eve

2010-08-20 17:53:00 1283

原创 VC进程相关的学习(二)(钩子基础)

Windows是建立在事件驱动机制上的,也就是所有消息的传递都是基于事件的,钩子就是截取这些消息进行处理。钩子的种类:线程钩子和系统钩子。     线程钩子只处理本线程的事件。     系统钩子可以处理系统级的事件。钩子的用法:    系统钩子暂时用不到,下面是线程钩子的使用    定义钩子函数,不同钩子的回调函数是不同的,具体按SetWindowHookEx的F1即可     LRESULT CALLBACK MouseProc(int nCode, WPARAM wparam, LPARAM lPara

2010-08-20 15:12:00 1215

原创 VC进程相关的学习(一)(查找进程和内存读取)

想通过BHO获取FLASH AJAX通讯数据的想法是没治了,彻底走了弯路(%>_1 HANDLE HINSTANCE HMOUDLE都是同一样东西。2 获取其他进程的HANDLE方法目前知道三种:    a:由本进程打开    PROCESS_INFORMATION pi; ZeroMemory(&pi, sizeof(pi)); HANDLE process=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_CREATE_TH

2010-08-20 09:36:00 6124 1

原创 VC浏览器相关的学习(七)(BHO捕获鼠标键盘事件)

原本想暂时将BHO放放,结果发现了IDispEventImpl 的基类 IDispEventSimpleImpl,原来真正牛逼的方法都在这里呢。0 #include // DISPID_HTMLDOCUMENTEVENTS2_ONCLICK1 新添加两种事件捕获,因为注册的基类有多个类有相同的方法,调用的时候需要指明,最好用typedef方便书写 class ATL_NO_VTABLE CMyRock : public CComObjectRootEx, public CComCoClass,

2010-08-19 14:44:00 5794 3

原创 VC浏览器相关的学习(六)(IDispEventImpl包装的主要方法)

IDispEventImpl包装方法对Ajax相当无力,也就是说对Flash也是没辙,娘的又走了弯路,作为几天的总结,IDispEventImpl包装的方法如下:    MyRock.h    IDispEventImpl包装方法对Ajax相当无力,也就是说对Flash也是没辙,娘的又走了弯路,作为几天的总结,IDispEventImpl包装的方法如下:// MyRock.h : Declaration of the CMyRock#pragma once#include "resource

2010-08-19 10:19:00 4151

原创 VC浏览器相关的学习(五)(在BHO中建立对话框)--解决CreateDialog的1813错误

1 添加一个资源Dialog IDD_DIALOG12 创建对话框     MyRock.h CMyRock():m_hwndDlg(0) { m_pMyRock = this; } private: void CreateDlg(); void DestroyDlg(); static INT_PTR CALLBACK CMyRock::DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA

2010-08-18 15:18:00 2825

原创 VC浏览器相关的学习(四)(在BHO中获取IE版本以及获取窗体句柄)

值得注意的是IE6,IE7,IE8的窗体组织完全不一样,需要用VS自带的工具Spy++查看确定a 获取IE版本    int CMyRock::GetIEVersion(){ CComPtr pDocDisp; // Doc CComQIPtr pHtmlDoc2; // HtmlDoc CComQIPtr pWindow; // 窗体 CComQIPtr pNavigator; // 浏览器 HRESULT hRes = m_spWe

2010-08-17 17:39:00 5099 1

原创 VC浏览器相关的学习(三)(解决IE8无法断点调试)

修改注册表,在HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main创建一个DWORD类型键,名称是TabProcGrowth,值为0,再调试就搞定。

2010-08-17 14:04:00 1935

原创 VC浏览器相关的学习(二)(BHO)

BHO Browser Helper Objects     1 BHO更像是浏览器的一个插件。    2 BHO依靠于COM,所以他只对IE生效,对其他浏览器无效。一 创建一个ATL DLL工程(RockBHO),生成的主要文件:    RockBHO.cpp  此源文件用于实现通过 DLL 提供 COM 对象的导出    RockBHO.idl  此源文件可用于定义自定义 COM 接口    RockBHO.rgs  此资源文件包含注册和取消注册 DLL 时编写和删除的注册表项二 为工程添加类 -> A

2010-08-16 18:10:00 3842 3

原创 VC浏览器相关的学习(一)(Single document界面)

1 MFC建立一个Single document    第一步:Document/View architecture support要打勾,否则第六步不可选    第六步:BaseClass改为CHtmlView2 添加地址栏    a 在CMainFrame添加    CComboBoxEx m_wndAddress;    b 在CMainFrame::OnCreate中添加,补入地址栏    if (!m_wndAddress.Create(CBS_DROPDOWN | WS_CHILD, CRec

2010-08-16 12:00:00 2529

原创 解决CollabNet Subversion Edge从网页无法启动

2010-08-13 21:21:42,046 [qtp29345020-59] ERROR services.CommandLineService  - Exit status=1 Process err output: httpd: Syntax error on line 72 of D:/csvn/data/conf/httpd.conf: Syntax error on line 23 of D:/csvn/data/conf/svn_viewvc_httpd.conf: Cannot load

2010-08-13 21:53:00 7241 2

原创 手动添加SVN服务

现在理论上是不用手动添加,娘的一路下一步总是有问题,备份一个。1 安装svnservice(是一个服务)    a 在Windows NT中本身包含了一个安装服务的工具"Service Control",也就是sc.exe。    b 例如我的Subversion安装在"D:/csvn/bin",想建立版本库在"D:/svn_repository",       对应的Subversion服务名为svnservice,希望自动启动(不写start= auto,就为手动)       安装这个svn服务的命令

2010-08-13 21:44:00 1534

原创 Python建立Web文件服务

进入你要共享文件的目录执行:E:/Software>python -m SimpleHTTPServer浏览器里输入http://localhost:8000就可以看到共享目录下文件

2010-08-13 14:42:00 1621

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除