程序设计windows
嘿-嘿-嘿
金融狂热者 量化从业,超级低调
展开
-
手写 二叉树--链表实现及相关操作
Node.h/////#pragma once#include<iostream>using namespace std;//节点要素:索引 数据 左孩子指针 右孩子指针, 父节点指针class Node{public: Node(void); ~Node(void); //搜索节点 这个函数是最先需要实现的 Node* SerchNode(int nodeIdex); //添加节点 bool AddNode(int...原创 2020-05-09 19:51:34 · 217 阅读 · 0 评论 -
手写二叉树---- 数组实现
Tree.h#pragma once#include <iostream>//二叉树和 数组的算法转换using namespace std;class Tree{public: Tree(void); ~Tree(void); Tree(int size, int* pRoot);//创建树 int* SearNode(int n...原创 2020-05-05 15:32:56 · 229 阅读 · 0 评论 -
手写 栈操作
stack.h#pragma once#include <iostream>using namespace std;class MyStack{public: MyStack(void); ~MyStack(void); MyStack(int size);//分配内存 初始化栈空间,设定栈最大容量,栈顶 bool st...原创 2020-05-04 16:53:16 · 307 阅读 · 0 评论 -
手写 环形队列各操作
MyQueue.h://///#pragma once//环形队列 C++实现class MyQueue{public: MyQueue(void); MyQueue(int QueueCapacity); virtual ~MyQueue(void); void ClearQueue(); bool QueueEmpty() cons...原创 2020-05-04 13:48:17 · 199 阅读 · 0 评论 -
const总结(慢慢更新)
1 c++ 函数前面和后面 使用const 的作用:前面使用const 表示返回值为const: const int GetLenth() 后面加 const表示函数不可以修改class的成员: int GetLength() const...原创 2020-05-04 10:19:31 · 249 阅读 · 0 评论 -
手写 线性链表的各种操作
花了点时间,手写了链表的常见操作,测试无误首先注意点:1 头结点不算第一个节点,且链表长度不包含头结点2 开始节点默认是 头结点后的第一个节点,且 下标为0,3 函数里第i个节点,是从下标为0的节点开始数,数到 第i个。以下函数,皆是用上述标准 定义的定义了 Node类和 List类。 2个类的各文件如下Node.h#pragma onceclass Node...原创 2020-05-03 21:36:22 · 195 阅读 · 0 评论 -
vs 如何引用第三方库
很近很近没用vs了。 今天突然用vs,需要引用第三方库,一下不知道怎么弄了。折腾老半天。现在做个记录第三方库分为 lib和 dlllib是纯静态的,代码函数等等都在里面。生成exe的时候,全部打包到exe里面。这样不灵活而dll这种方式是: 需要有头文件一般放在include里面 ,dll这里是函数实现,lib这里是导出函数的名字以glog为例 做说明glog里面有三个目录...原创 2020-04-27 20:22:47 · 6372 阅读 · 0 评论 -
在mfc的dll里再动态加载jvm.dll引发的问题--不要在构造函数里做复杂的init流程
最近遇到个bug。真的是深刻的教训。原来老工程是同事写的。在JavaINI的构造函数里调用了Init函数来完成初始化jvm的流程现在我的任务是把c++调用java这个功能独立出来做成dll。我抽出代码后做好了dll后测试发现,流程走到调用JNI_CreateJavaVM这里,调用这个函数后卡住没有反应。单步也不走了,函数也不返回,好像死锁了。 花了好长时间才发现,在构造函数里屏蔽Init函原创 2013-06-17 16:50:53 · 680 阅读 · 0 评论 -
LoadLibrary失败,getlasterror返回126的心得
今天一个很简单的东西,耽误了不少时间 sprintf(szDllName,"redisdll//%sredishq.dll",pszMktCode);m_hRedisDLL = (HINSTANCE)LoadLibrary(szDllName);运行失败,找不到,为空,,返回126最后发现,同事给的dll是debug版本,换成release版本的就自愈了原创 2013-06-07 15:29:30 · 8780 阅读 · 1 评论 -
有关在MFC中打开控制台的办法
if ( AllocConsole() ){FILE * fp = freopen ("CONOUT$", "w", stdout ); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);//SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN );SetConsoleTitle(转载 2013-05-15 14:56:03 · 565 阅读 · 0 评论 -
C++字符串完全指南
C++字符串完全指南 - Win32字符编码(一)前言字符串的表现形式各异,象TCHAR,std::string,BSTR等等,有时还会见到怪怪的用_tcs起头的宏。这个指南的目的就是说明各种字符串类型及其用途,并说明如何在必要时进行类型的相互转换。在指南的第一部分,介绍三种字符编码格式。理解编码的工作原理是致为重要的。即使你已经知道字符串是一个字符的数组这样的概念,也请阅读本转载 2013-05-14 15:09:45 · 827 阅读 · 0 评论 -
总结OnOK、OnCancel、OnDestroy函数之间的区别
第一,OnOk()和OnCancel()是CDialog基类的成员函数,即ID为ID_OK和ID_CANCEL的按钮的通知消息的响应函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数第二,OnClose()和OnDestroy()在对话框程序中,根据《深入浅出MFC》所讲,程序退出执行时执行的操作顺序为(从点X按钮开始)(1)用户点击X关闭按钮,发送了WM转载 2017-06-16 16:38:23 · 8580 阅读 · 0 评论 -
头文件包含顺序
综合来看,我们应该以这样的方式来#include头文件:从最特殊到最一般,也就是,#include "本类头文件"#include "本目录头文件"#include "自己写的工具头文件"#include "第三方头文件"#include "平台相关头文件"#include "C++库头文件"#include "C库头文件"预编译头文件:防止同一组头文件在多个C转载 2013-05-09 15:06:13 · 729 阅读 · 0 评论 -
svn返回值(403 Forbidden)的问题
今天接手个新项目,又开了svn权限。却发现连接svn服务器,服务器发送了意外的返回值(403 Forbidden),更新不到代码检查发现,之前的项目也开过svn权限,在窗口上勾选了不再询问账号和密码。所以这次连接新项目,还是用的上次的老账号和密码。再设置里面,选择“已保存数据”。把右边窗口的资料,全部清楚。再更新代码,输入新的账号密码,就正常了原创 2013-06-18 14:08:38 · 1827 阅读 · 0 评论 -
计算程序的耗时
#include //头文件,包含进来#include "..."... ... clock_t timeStart,timeEnd;//定义两个变量,统计起始结束时间 double howlong; char timeShow[65]; timeStart=clock(); bool Transfer() { ... ... } timeEnd=cl转载 2013-06-08 16:49:24 · 437 阅读 · 0 评论 -
(转)MFC程序(在静态库中使用MFC)问题
基本知识:在项目的配置属性中配置“MFC的使用”时,选项的区别:如果选择”在共享 DLL中使用 MFC”的话,编译后的程序中不包含MFC库,所以文件会比较小,但是如果程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL,如果选择”静态库中使用 MFC “,那么编译后的程序就直接包含了调用MFC的部分的库,文件可能会大一些,但是可以直接移到其他机器上运行.遇到的问题:在选择”在转载 2017-05-09 19:46:24 · 2099 阅读 · 0 评论 -
读配置文件
char szFilePath[1024];sprintf(szFilePath,"%s\\XXXX.conf",GetCurExePath());memset(m_szJNIVersion,0,sizeof(m_szJNIVersion));GetPrivateProfileString("JNIVersion","version","",m_szJNIVersion,10,szFi原创 2013-05-17 13:59:44 · 345 阅读 · 0 评论 -
jasoncpp库的使用
今天踩到一个坑了了。要用这个json库,在网上直接下载了一个。俺以下步骤操作结果发现 出现link错误error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Reader最后一怒之下,去官网下载了源码自己编译,后来发现问题如下:1 我的主工程的编译条件是MDD, 一般网上下载的是mtd的。没发用,只能自己下载源码编译原创 2017-07-27 15:36:55 · 1531 阅读 · 0 评论 -
VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。转载 2016年08月05日 16:49:0210491、在项目自动生成的stdafx.h文件中添加下面头文件#include #include #include 2、把下面的函数加到你初始化的地方,然后你就可以使用printf函数了void I转载 2017-12-25 11:10:04 · 453 阅读 · 0 评论 -
简单内存泄漏检测方法 解决 Detected memory leaks
最近在一个项目中,程序退出后都出现内存泄漏:Detected memory leaks!Dumping objects ->{98500} normal block at 0x05785AD0, 152 bytes long. Data: N x 7 > 3C AC 4E 10 00 00 00 00 BC A4 4E 10 78 B6 37 00Object转载 2012-12-26 09:47:36 · 469 阅读 · 0 评论 -
动态创建二维数组并赋值
char source[10] = "china!"; char (*pa)[10] = new char[n][10];//类似10这个大小必须确定 ZeroMemory(pa,n*10); if (pa) { for (int i = 0 ; i { strncpy(*pa,source,10); pa += 1; } }delete原创 2013-05-22 15:00:45 · 1528 阅读 · 0 评论 -
fatal error C1853
fatal error C1853在 ATL 工程中,IDE会生成 *_i.c *._i.h,我手工删除了他们,但是IDE在重新生成的时候没有将他们加入到工程,于是我手工加入,此时出现了 fatal error C1853 错误。原因在于IDE试图为 *.c文件使用预编译头。但是c文件是不能使用预编译头的。在*.c文件上点击右键,属性,c++,预编译头,选择不使用。这样就OK了转载 2013-05-07 16:04:55 · 406 阅读 · 0 评论 -
保存数据到文件
bool SaveIndexToFile( &vec_Static)//这里是举例{ //存放路径的变量 char Buf[MAX_PATH]; ZeroMemory(Buf,MAX_PATH); char TargetBuf[MAX_PATH]; ZeroMemory(TargetBuf,MAX_PATH); //获取程序的当前目录 GetCurrentDirec原创 2013-05-21 10:43:21 · 472 阅读 · 0 评论 -
TreeCtrl控件,选择根节点时子节点同时被选的代码
开发需要,借用了一个哥们的blog里的代码,但是它里面有些错误,做了下修改,但还是尊重他原创吧void CSearechDLG::OnNMClickCommercialTree(NMHDR *pNMHDR, LRESULT *pResult){// TODO: Add your control notification handler code hereCPoint point转载 2013-01-08 09:54:45 · 1222 阅读 · 0 评论 -
用vs2008开发Qt4项目 (非常简单的安装方法)
这段时间在玩QT4,用QtCreator还不错,但毕竟还是vs系列用的习惯了,就找了个用vs开发qt的简单方法:用VS2008开发Qt4.6 虽然现在QtCreator做的很不错了,但相对来说目前还是简陋了点,代码提示比起VS+VA还是差了点而且VA的重构功能QtCreator也没有,有时候总感觉少了点啥Nokia现在有为vs2008编译好的发行版本了,不用再自己慢慢编译,转载 2013-01-06 09:23:52 · 507 阅读 · 0 评论 -
MFC中Radio Button使用方法
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CB转载 2013-01-06 17:05:53 · 371 阅读 · 0 评论 -
收藏的一个牛人的文章
全是关于windows的http://blog.csdn.net/todototry/category/251012.aspx转载 2008-06-25 10:32:00 · 293 阅读 · 0 评论 -
Release版本程序----------问题调试
如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程序可以象Debug版本一样运行。如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release版本测试,然而当您测试的时候却发现问题,那么请看我们的调试规则1:规则1: 经常性对开发软转载 2012-12-26 09:45:24 · 371 阅读 · 0 评论 -
从xml文件里获取文字(char型) 到列表控件显示的代码范例
char str[200] = "";sprintf(str,"%s",NameElement->FirstChild()->Value()); strName = str; m_CtrlShowInfoList.SetItemText(nRow, 1, strName); 不算啥,只是怕时间久了,忘记了,特记录下来原创 2012-12-06 17:08:11 · 439 阅读 · 0 评论 -
(转)how to study rootkit
1.c/c++ -->2.asm -->3. theory about operating systems -->4.native api -->5.KMD-->6.reversing文章大概就是上面说的那些,1和2就不说了,从3开始吧。把老罗的那本书一看,应该对进程,线程,PE的理解应该有一个认识了,对操作系统的认识绝对比一般理论介绍的书要深刻很多。可以看看jeffery转载 2012-11-22 14:56:13 · 308 阅读 · 0 评论 -
宽字符的问题
'CreateFileW' : cannot convert parameter 1 from 'const char [13]' to 'LPCWSTR''CreateFileW' : cannot convert parameter 1 from 'const char [13]' to 'LPCWSTR' – VBForumsIn this article the a转载 2012-11-29 14:38:01 · 444 阅读 · 0 评论 -
二进制只读打开文件,并发送全过程
void SendPicToClient( uint64 nSessionId){EnterCS();FILE* file = 0;;file = fopen("F:\\TIF\\6.TIF","rb+");if (!file){//AfxMessageBox(_T("指定TIF文件打开失败"));m_pBaseLib->m_pLog->LogInfo("指原创 2013-01-09 15:22:10 · 1478 阅读 · 0 评论 -
CxImage在VS2008下的编译(另外加入了自己的心得)
说实话CxImage,真是配置起来很麻烦。试验了网上说的好几种办法,都不行。我都想开骂了。折腾一天,找到一个哥们的blog,按照他说的配好了(我因为要在2008下开发,最好还是用2008来编译CxImage,网上很多教程都是很老的6.0下编译的,通用性不够会有很多问题,我之前折腾一天,不成功,也可能有这个方面的原因)基本过程是: 1. 下载。。。 (最新的是cximage600_ful转载 2013-01-11 10:42:06 · 1195 阅读 · 0 评论 -
vc工程的常见开发环境的配置
常见的目录结构如下:XXXX/binXXXX/A_libXXXX/B_lib XXXX/XXXX.sln XXXX/XXXX/代码XXXX\XXXX\Debug///////////////////////////////////////////////////////////////////////////比如项目放在如下目录: D:\Vis原创 2013-05-06 16:41:03 · 523 阅读 · 0 评论 -
DLL 木马揭秘[转]
相信经常玩木马的朋友们都会知道一些木马的特性,也会有自己最喜爱的木马,不过,很多朋友依然不知道近年兴起的“DLL木马”为何物。什么是“DLL木马”呢?它与一般的木马有什么不同?一、从DLL技术说起 要了解DLL木马,就必须知道这个“DLL”是什么意思,所以,让我们追溯到几年前,DOS系统大行其道的日子里。在那时候,写程序是一件繁琐的事情,因为每个程序的代码都是独立的,有时候为了实现一个转载 2013-05-17 14:00:51 · 414 阅读 · 0 评论 -
在对话框中拖动切分条,会有残影的解决办法
这个问题困扰了我很久,绝望 准备,不用它的时候,发现在属性里面把 visible 设置为false就好了,真是不可意思,不可理解原因。界面上仍然可以看到这个切分条。再拖动,就没有残影了。另外补充一句,这个切分条用的是picture control控件做的,把它拉小,拉成一个细长的线原创 2013-05-03 16:13:10 · 1688 阅读 · 0 评论 -
捕捉线程异常
void * XXXX::RunFun(void *pParam){ try{ assert(pParam); Thread *pThread = (Thread *)pParam; DoRun(pThread);}catch (...){ printf("error!\r\n"); //添加log信息}}原创 2013-05-16 15:07:07 · 359 阅读 · 0 评论 -
给树形控件添加右键弹出菜单的代码(会陆续增加了其他的内容)
先添加一个树形控件,再增加控件类型变量m_ctltree, 然后修改树形控件的3个风格has lines和lines at root, has buttons为true以便美观。然后映射右键消息。再添加一个菜单资源IDR_MENU1。再添加下面的代码void XXXDLG::OnNMRClickTree1(NMHDR *pNMHDR, LRESULT *pResult){ // TOD原创 2013-04-16 13:58:20 · 561 阅读 · 0 评论 -
精确判断 鼠标点击的树形控件里的节点
必须点到节点上才会进去,点在附近,则无效UINT uFlags = 0;CPoint ptC = GetCurrentMessage()->pt; //获取当前鼠标点击消息的坐标点m_ctltree.ScreenToClient(&ptC); //将鼠标的屏幕坐标,转换成树形控件的客户区坐标HTREEITEM hItem = m_ctltree.HitTest(ptC,转载 2013-04-25 16:22:38 · 778 阅读 · 0 评论 -
完成端口 完成端口 完成端口 还是完成端口
翻译说明: 完成端口基本上公认为一种在windows服务平台上比较成熟和高效的IO方法,理解和编写程序都不是很困难。目前我正在进行这方面的实践,代码还没有完全调试和评价,只有这一篇拙劣的学习翻译文摘,见笑见笑。翻译这个文章,是因为我近期在学习一些socket服务程序的编写中发现(注意,只是在学习,我本人在这个领域经验并不充足到可以撰文骗钱的地步:P),如果不是逼着自己把这个文章从头翻译一遍,我怀疑转载 2013-01-16 11:20:20 · 854 阅读 · 0 评论