
2012年5月10日
摘要: 相关版本: OpenCV 2.1#include "cv.h"#include "highgui.h"#include "math.h"// clockwise 为true则顺时针旋转,否则为逆时针旋转IplImage* rotateImage(IplImage* src, int angle, bool clockwise){ angle = abs(angle) % 180; if (angle > 90) { angle = 90 - (angle % 90); } IplImage* dst = NULL; int wi
阅读全文
posted @ 2012-05-10 13:08 carekee 阅读(18) 评论(0)
编辑
摘要: 相关版本: OpenCV 2.1#include <cv.h>#include <highgui.h>#include <iostream>using namespace std;int main(int argc, char** argv){ IplImage *src = NULL; IplImage *dst = NULL; CvSize dstSize; double times = 2.0; src = cvLoadImage("test.jpg"); if (src == NULL) { cout << "
阅读全文
posted @ 2012-05-10 13:08 carekee 阅读(9) 评论(0)
编辑
摘要: HBITMAP to IplImage - - IplImage* hBitmap2Ipl(HBITMAP hBmp){BITMAP bmp;::GetObject(hBmp,sizeof(BITMAP),&bmp);int nChannels = bmp.bmBitsPixel == 1 ? 1 : bmp.bmBitsPixel/8 ;int depth = bmp.bmBitsPixel == 1 ? IPL_DEPTH_1U : IPL_DEPTH_8U;IplImage* img = cvCreateImageHeader( cvSize(bmp.bmWidth, bmp.b
阅读全文
posted @ 2012-05-10 11:06 carekee 阅读(7) 评论(0)
编辑

2012年3月27日
摘要: 对系统服务的管理几乎是木马必不可少的功能了,比如神气儿,上兴远程控制等要是能我们给自己的木马加上这个功能,看着也不赖。我们实现的效果如图3-4所示 图3 图4 好啦,现在开始干活取得配置权限 在对服务进行管理设置前,需要以相应的权限打开服务,可通过下面两个API实现SC_HANDLE OpenSCManager(LPCTSTR lpMachineName,// pointer to machine name stringLPCTSTR lpDatabaseName,// pointer to database name stringDWORD dwDesiredAccess // type .
阅读全文
posted @ 2012-03-27 15:56 carekee 阅读(44) 评论(0)
编辑
摘要: 下面就跟着我一步一步地教你怎么去创建一个服务应用程序吧。本文主要介绍了OpenSCManager、 CreateService、OpenService、ControlService、DeleteService、 RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher等操 作服务程序的主要几个API的用法,具体的函数参数大家可以查阅MSDN。一、建立Win32 Application应用程序(当然你也可以建立其它的应用程序,但服务一般是没有用户界面的),并命名为ServiceTest。二、定义全局函数变量//定
阅读全文
posted @ 2012-03-27 15:55 carekee 阅读(37) 评论(0)
编辑
摘要: VC没发现就自己花了2天时间写了个 写好后拿给 NB 看 他说他以前写了 就把代码发出来吧我的代码#include "Winsvc.h" //BOOL DisplayServices(); //查看服务//void AddServices(); //添加服务//void DelServices(); //删除服务//void StopServices(); //停止服务//void StartServices(); //启动服务BOOL DisplayServices(char *m_ServiceName) //查看服务{char RgsKey[MAX_PATH];HKE
阅读全文
posted @ 2012-03-27 15:54 carekee 阅读(36) 评论(0)
编辑

2012年3月23日
摘要: ASCII码表完整版 ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符 0NUT32(space)64@96、1SOH33!65A97a2STX34”66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT43+75K107k12FF44,76L108l13CR45-77M109m14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI
阅读全文
posted @ 2012-03-23 22:44 carekee 阅读(18) 评论(0)
编辑
摘要: BOOL IplImage2Bmp(IplImage *pImage,CBitmap *bitmap){if( pImage && pImage->depth == IPL_DEPTH_8U ) { uchar buffer[sizeof(BITMAPINFOHEADER) + 1024]; BITMAPINFO* bmi = (BITMAPINFO*)buffer; int bmp_w = pImage->width, bmp_h = pImage->height;int width=bmp_w;int height=bmp_h;int bpp=pImage
阅读全文
posted @ 2012-03-23 11:35 carekee 阅读(33) 评论(0)
编辑

2012年3月21日
摘要: C++所有WM消息总览表windows消息WM_ WM_NULL = $0000;WM_CREATE = $0001;应用程序创建一个窗口 WM_DESTROY = $0002;一个窗口被销毁 WM_MOVE = $0003;移动一个窗口 WM_SIZE = $0005;改变一个窗口的大小 WM_ACTIVATE = $0006;一个窗口被激活或失去激活状态; WM_SETFOCUS = $0007;获得焦点后 WM_KILLFOCUS = $0008;失去焦点 WM_ENABLE = $000A;改变enable状态 WM_SETREDRAW = $000B;设置窗口是否能重画 WM_SET
阅读全文
posted @ 2012-03-21 14:26 carekee 阅读(62) 评论(0)
编辑
摘要: hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。message 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。lParam 通常是一个指向内存中数据的指针。由于WParam、lParam和Pointer都是32位的,因此,它们之间可以相互转换。WM_NULL =$0000 //WM_CREATE =$0001 //应用程序创建一个窗口WM_DESTROY = $0002 //一个窗口被销毁.
阅读全文
posted @ 2012-03-21 14:24 carekee 阅读(66) 评论(0)
编辑
摘要: 从窗口中的按钮发送消息。按钮会从WM_COMMAND消息的参数中,获取到发送的消息IDC_BEGIN :要接收消息的按钮IDBN_CLICKED: 单击消息,也可以是双击消息或者其它的消息LPARAM: 要接收消息按钮ID句柄[c-sharp] view plaincopyprint?PostMessage(WM_COMMAND,MAKELONG(IDC_BEGIN,BN_CLICKED),(LPARAM)(GetDlgItem(IDC_BEGIN)->GetSafeHwnd()));在重载CButton的DLL中,可以这样做::PostMessage(this->GetParen
阅读全文
posted @ 2012-03-21 14:22 carekee 阅读(89) 评论(0)
编辑
摘要: ReductionsReduction算法使用二元操作将输入序列规约为一个单值。例如,需要获得一数列的和,可以通过加运算规约此数组得到。相似的,数列的最大值,可以通过由两个输入值返回一个最大值的运算子规约得到。数列的求和的规约操作可以由thrust::reduce如下实现:[cpp] view plaincopyprint?intsum=thrust::reduce(D.begin(),D.end(),(int)0,thrust::plus<int>());int sum = thrust :: reduce (D. begin () , D. end () , ( int ) 0
阅读全文
posted @ 2012-03-21 11:25 carekee 阅读(21) 评论(0)
编辑
摘要: CUDA 4.0 已经发布了RC版本,处于网友与新人的要求,我讲解下如何配置环境与工程的问题。要完整的使用CUDA 4.0功能与开发工具,建议使用windows 7 64bit或者windows 2008 R2 64bit系统。我的电脑是win7。首先登陆到NVIDIA的开发者页面下载最新的驱动、toolkit、SDK与新增的tools SDK安装文件。首先安装驱动需要注意的是在安装过程中建议勾选"Perform a clean installtion"。下面安装toolkit完了之后就是SDK在CUDA 4.0 NV增加了一个tools SDK,最好也安装下吧,反正不大~
阅读全文
posted @ 2012-03-21 11:24 carekee 阅读(41) 评论(0)
编辑
摘要: 谨以此文想给那些被Linux搞得折翼的小盆友们,当然还有我自己……首先下载驱动,toolkit 还有SDK……安装前确认这些文件都是可执行的,如果不是运行以下命令:sudo chmod a+x [文件名]然后是安装驱动的问题,估计很多人十分头疼……按下Ctrl加Alt加F1进入纯命令模式,登陆后运行以下命令关闭Gnomesudo /etc/init.d/gdm -stop然后运行驱动安装文件需要加上sudo,基本按回车就好。安装完毕后运行以下命令打开Gnomesudo /etc/init.d/gdm -start按下Ctrl加Alt加F7回到GUI下面安装SDK,依然需要root权限,记得加上
阅读全文
posted @ 2012-03-21 11:24 carekee 阅读(12) 评论(0)
编辑
摘要: Thrust提供了丰富的常用并行算法。这算法的功能与STL中的非常相似,于是我们使用了相同的名称(例如thrust::sort 与 std::sort)。所有的Thrust算法均提供了主机端和设备端。特别指出,当转入主机端迭代器时,将会调度主机端方法,相似的,当使用设备端迭代器时将使用设备端实现。trust::copy是一个例外,他可以任意的拷贝主机端和设备端的数据。但是所有的迭代器参数必须符合算法的要求,要与之对应。当不能满足要求的时候,编译器会报错。TransformationsTransformations算法作用是用来将目标容器赋上特定值(例如零)或者特定数列。之前的例子我们已经使用过
阅读全文
posted @ 2012-03-21 11:24 carekee 阅读(23) 评论(0)
编辑
摘要: Trust 提供了两个vector容器:host_vector 与 device_vector。按照命名规则,host_vector位于主机端,device_vector位于GPU设备端。Trust的vector容器与STL中的容器类似,是通用的容器,可以存储任何数据类型,可以动态调整大小。以下源代码展示如何使用Thrust的vector容器。[cpp] view plaincopyprint?#include<thrust/host_vector.h> #include<thrust/device_vector.h> #include<iostream>
阅读全文
posted @ 2012-03-21 11:23 carekee 阅读(13) 评论(0)
编辑
摘要: 在这节中我们曾使用了这样的表达式,H.begin() 、H.end()、D.begin() + 7。begin()与end()的返回值在C++中被称为迭代器。vector的迭代器类似于数组的指针,用于指向数组的某个元素。H.begin()是指向H容器中数组第一个元素的迭代器。类似,H.end()指向H容器中的最后一个元素。 虽然说迭代器类似于指针,但它有着更丰富的作用。可以注意到在使用thrust::fill的时候我们并不需要指明这是device_vector的迭代器。这些信息包含在了D.begin()的返回值的迭代器类型中,其类型不同于H.begin()的返回值。当Thrust中的函数调用时
阅读全文
posted @ 2012-03-21 11:23 carekee 阅读(13) 评论(0)
编辑
摘要: 在CUDA新版中内置了对Visual Studio 2010的支持,而且测试发现nvcc竟然对vs100编译器也给予了支持。这点在官方的简介中并没有提及。下面来看下如何在VS2010中正确配置新建一个CUDA项目。首先在正常安装CUDA toolkit和SDK后,会自动配置好IDE。如果没有可以在Toolkit的安装目录下找到下面的这些文件。 将MsBuildExtension 文件夹下的所有文件拷贝至 C:/Program Files/MSBuild/Microsoft.Cpp/v4.0/BuildCustomizations (C:/Program Files (x86)/MSBuild/
阅读全文
posted @ 2012-03-21 11:22 carekee 阅读(52) 评论(0)
编辑
摘要: Thrust 是一个类似于STL的针对CUDA的C++模板库。Trust提供与CUDA C完全兼容的接口,可以使我们高效地编写高性能并行程序。Thrust提供了丰富的数据并行算法,例如scan、sort、reduce等,可以简单快捷地构成复杂算法,并使得代码获得更高的可读性。使用这些高度抽象的方法来表达计算,可以隐藏细节,并且Trust会自动选择最有效率的算法实现。因此,程序员得以快速构建CUDA程序,并能够获得极高的稳定性和性能与精度。此文档简述了如何使用Trust开发CUDA程序。即使你的C++与CUDA经验有限,也能够顺利学习该指导。安装与版本在安装CUDA Toolkit时,Trust
阅读全文
posted @ 2012-03-21 11:22 carekee 阅读(12) 评论(0)
编辑