摘要:
Ogre 是使用 OIS 这个开源的输入框架来处理用户的键盘或鼠标事件的。需要引入 OIS.h 头文件#include "OIS.h"int main(){ Ogre::Root* root = new Ogre::Root("plugins_d.cfg"); // 创建我们的主窗口 Ogre::RenderWindow* window = root->initialise(true,"My Ogre Render Window"); // 首先需要创建一个InputManager对像的指针,它来负责管理所有的输入事件 // 使 阅读全文
摘要:
1. vectorvector<int> vec;// 向最后加一个元素vec.push_back(12);// 删除最后一个元素vec.pop_back();// 第一个元素的指针vec.begin()// 最后一个元素的*下一个*地址的指针vec.end()// 第一个元素vec.front()// 最后一个元素vec.back()// 是否含有元素vec.empty()// 迭代器Vector<int>::iterator iter;// 使用迭代器遍历元素for(iter = vec.begin();iter != vec.end();iter++){ cout 阅读全文
摘要:
在C++中使用 new 堆中申请了一块内存,在你使用完成后要“记得” 去释放它(delete),不然这块内存就浪费掉了。但是让所在程序员都”记得“ 这件事儿本身就不靠谱。 特别是在程序变得很大之后。 没有人会记得所有你需要释放的内存。这时候 就想如果能像 C#那样。程序自己去管理内存就太爽了。很大程度的给程序员减负呀~~~~在C++ memory.h 中就有一个这种类的实现 auto_ptr.先说下它的原理, 很简单。 就是用栈中的变量去释放堆中的内存,因为 栈中的变量是在不需要的时候自动释放掉的。 这样我们就可以在这个变量的析构函数中去 delete 掉这块内存了。比如 : 这样一个简单的类 阅读全文
摘要:
1.改变 游戏窗口的大小GraphicsDeviceManager graphics = new GraphicsDeviceManager(this);graphics.PreferredBackBufferWidth= 800;graphics.PreferredBackBufferHeight = 400;2.得到键盘鼠标事件KeyboardState keyboard = Keyboard.GetState();MouseState mouse = Mouse.GetState();可以在 Update 方法中.接收用户的输入事件:if (keyboard.IsKeyDown(Keys 阅读全文
摘要:
在写程序时, 可以把用到的 图标,图片,声音等外部资源,放在一个 .resx (资源文件)中. 这样的好处是不用考虑什么路径的问题.而且还对资源有保护的做用.1.创建一个 ResourceFile.resx 文件. (ResourceFile 可以为自定义的任意名称)2.向ResourceFile.resx 里添加资源文件 .3.可以直接在C# 文件中这样使用: 比如:主窗体的图标: this.Icon = (Icon)(ResouceFile.ResourceManager.GetObject("资料的名称无后缀")); 阅读全文
摘要:
DES 加密的一些名词 : 原字符串 加密后字符串 密钥 与 向量1。将原字符串转为 字节数组.使用 UTF8解码。byte[] InputStrArr = System.Text.Encoding.UTF8.GetBytes(InputStr);2.得到密钥与向量的字节数组 都为8位。byte[] key ;byte[] iv;// 创建一个DESDESCryptoServiceProvider des = new DESCryptoServiceProvider();// 创建一个内存流,用来将加密后的字节写入。 MemoryStream ms = new Memor... 阅读全文
摘要:
连接字条串: "server = xxx.gotoip.net,1435;database = theTable;uid = xxxxx;pwd = xxxxx"选择 : select * from theTable select xxx,xxx,xxx, from theTable where xx = 'xxxx' or xx like '%xx%'增加 : Insert into theTable (xxx,xxx,xxx) values (xxx,xxx,xxx)修改 : update theTabel set xxx = ' 阅读全文
摘要:
现在非常的流行使用C++来完成底层的算法或是需要高运行速度的程序快。然后使用 C# 来调用。用C#来写界面和逻辑层。 这样即用到了 C++ 的运行速度又用到了C# 快速的开发优势。下面讲一下如何在C#中调用 C++生成的dll :// cppdll.cpp 因为这个DLL的目的就是为了让 C#去调用。所以这里不用// 再去写个头文件了,写头文件主要是为了让 C++的程序去调。我们这里// 是把函数的声明与定义都写在一起。#include using namespace std;// 把固定要使用的 “extern "C" __declspec(dllexport)”,放在函 阅读全文
摘要:
搞 OSG 搞VR 搞虚拟仿真, 不是看影片呀. 是需要交互的.怎么交互?? 就是让 osgViewer::Viewer 响应下鼠标与键盘的事件嘛.. 比如:按下了鼠标的左键呀.. 按下了键盘上的 WSAD呀.. 什么什么的.. 好的. 那么怎么让 Viewer 知道你做的事件呢?? 怎么办呢?? 可喜的是. Viewer 有一个叫 addEventHandler(osgGA::GUIEventHandler handle)的方法.. 看字面的意思.就知道他是为 Viewer 来增加事件处理方法的. BUT!! 这个方法虽好, 但您还不能直接拿来使用..... Becuse .你... 阅读全文
摘要:
C# 中的线程 Thread的定义与使用:1.默认是需要传一个无返回值无参数的方法:void Func();Thread th = new Thread(Func);th.Start();2.默认的向线程中传值,使用的是ParameterizedThreadStart(Object obj).,无返回值 。它传入的是一个 Object类型的参数。 void Func(Object obj);Thread th = new Thread(new ParameterizedThreadStart(Func)); th.Start(something);3.我们可以使用一个类把... 阅读全文