![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程基础
文章平均质量分 64
lonelyrains
这个作者很懒,什么都没留下…
展开
-
PostgreSQL
--查所有数据表SELECT tables.table_name, tables.table_schema, tables.table_typeFROM information_schema.tablesWhere tables.table_name like '%DATA_HISTORY%'order by tables.table_name--查数据表的所有字段SELECT *, column_name, data_typeFR...原创 2022-01-05 10:52:38 · 607 阅读 · 0 评论 -
grpc c# .net 使用
repeataddrangereqrequest同步异步https://developers.google.com/community/dsc c#的protobuf使用范例https://developers.google.com/protocol-buffers/docs/proto3#adding_comments proto3的语法https://docs.microsoft.com/zh-cn/aspnet/core/grpc/basics?vi...原创 2021-04-23 15:13:28 · 178 阅读 · 0 评论 -
c#反射获取单例对象的实例
object obj = null;if (classItem.BaseType.Name == "Singleton`1"){ obj = classItem.BaseType.GetProperty("Instance").GetValue(null);}else{ obj = Activator.CreateInstance(classItem);}反射创建实例,最常用...原创 2019-11-28 19:37:00 · 2568 阅读 · 0 评论 -
推荐一个python IDE: eric
对python脚本进行单步调试,查看变量值,并能模拟其运行环境。而且感觉不怎么消耗资源。需要调试Python可以使用这个 IDE。需要先安装PyQt-Py2.6-x86-gpl-4.9.4-1.exe,再执行eric4-4.5.5里的install.py,提示成功后 运行eric4-4.5.5\eric\eric4.pyw就可启动IDE了。注意这个版本的PyQt4对应的是python转载 2012-08-29 11:15:52 · 2324 阅读 · 0 评论 -
Java、Android超精确测量代码执行时间差
Java、Android开发中精确测量代码运行时间: long startTime = System.nanoTime(); //開始時間//// 这里是你要测量的代码//long consumingTime = System.nanoTime() – startTime; //消耗時間consumingTime就是你所测试的转载 2013-01-09 17:03:07 · 11527 阅读 · 0 评论 -
函数库调用 VS 系统调用
函数库调用 VS 系统调用函数库调用系统调用在所有的ANSI C编译器版本中,C库函数是相同的各个操作系统的系统调用是不同的它调用函数库中的一段程序(或函数)它调用系统内核的服务与用户程序相联系是操作系统的一个入口点在用户地址空间执行在内核地址空间执行转载 2013-03-04 20:22:32 · 935 阅读 · 0 评论 -
VC6.0调试技巧补缺
一、基本的调试设置1、CTRL+F10:运行到当前光标处2、设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。为了增加转载 2013-03-21 19:12:22 · 1126 阅读 · 0 评论 -
Visual Assist X 快捷键
VAX非常好用,如果配合上快捷键,估计效率会大大提高。我把所有的VAX 10.6默认的快捷列出来了,给大家参考,希望对大家有所帮助。Shift+Alt+F Find References 查找引用Alt+G GotoImplementation 调到实现Alt+M ListMethodsInCurrentFileAlt+Left Arrow NavigateBack转载 2014-03-27 18:05:10 · 2733 阅读 · 0 评论 -
节省你学习时间的百余个谷歌小技巧
With classes, homework, and projects–not to mention your social life–time is truly at a premium for you, so why not latch onto the wide world that Google has to offer? From super-effective search tric转载 2014-04-29 20:03:09 · 3484 阅读 · 0 评论 -
钩子HHOOK
基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子转载 2014-05-05 10:40:18 · 785 阅读 · 0 评论 -
Windows下Hook API技术
Windows下Hook API技术 什么叫Hook API?所谓Hook就是钩子的意思,而API是指Windows开放给程序员的编程接口,使得在用户级别下可以对操作系统进行控制,也就是一般的应用程序都需要调用API来完成某些功能,Hook API的意思就是在这些应用程序调用真正的系统API前可以先被截获,从而进行一些处理再调用真正的API来完成功能。在讲Hook转载 2014-05-05 20:25:31 · 3033 阅读 · 0 评论 -
WindowsHookApi实例
原文地址:http://blog.sina.com.cn/s/blog_628821950100xmuc.html原文对我的帮助极大,正是因为看了原文,我才学会了HOOK,鉴于原文的排版不是很好,又没有原工程例子源码下载,因此我决定对其重新整理,文章后面附有我测试时的工程源码下载地址。注:我测试的环境为Win7+VS2008+MFC原文出处,好像是这篇:http:/转载 2014-05-05 20:33:11 · 3996 阅读 · 1 评论 -
Hook api! 如何拦截系统api, 让它做你想做的事!
正文: 拦截api的技术有很多种,大体分为用户层和内核层的拦截.这里只说说用户层的拦截.而用户层也分为许多种:修改PE文件导入表,直接修改要拦截的api的内存(从开始到最后,使程序跳转到指定的地址执行).不过大部分原理都是修改程序流程,使之跳转到你要执行的地方,然后再返回到原地址.原来api的功能必须还能实现.否则拦截就失去作用了.修改文件导入表的方法的缺点是如果用户程序动态加载(使用Loa转载 2014-05-05 20:35:40 · 11553 阅读 · 1 评论 -
使用调试钩子屏蔽全局钩子
使用调试钩子屏蔽全局钩子 WH_DEBUG为调试钩子,用来给钩子函数除错。在系统调用系统中与其他Hook关联的Hook钩子例程之前,系统会调用WH_DEBUG Hook钩子例程。你可以使用这个Hook来决定是否允许系统调用与其他Hook关联的Hook钩子例程。WH_DEBUG调用DebugProc钩子例程。DebugProc语法:Cpp代码 LRES转载 2014-05-05 20:38:02 · 1599 阅读 · 0 评论 -
vc vs already defined in
already defined in *.obj造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern in转载 2014-05-07 10:50:58 · 951 阅读 · 0 评论 -
Jenkins的配置
1 修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins 。.jenkins ├─jobs│ └─JavaHelloWorld│ ├─builds│ │ ├─2011-11-03_16-48-17│ │ ├─2011-11-03_16-49-05│转载 2014-06-25 16:23:39 · 999 阅读 · 0 评论 -
在Windows下编译Firefox源码
在Windows下编译Firefox源码 (2007-04-13 17:11:40) (1) 下载MozillaBuildSetup-1.1.exe http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.1.exe转载 2014-08-29 16:04:19 · 7212 阅读 · 0 评论 -
strcpy溢出的攻击示例
在学习c/c++的时候,就讲到了一些C类型的字符串函数不是安全的,比如strcpy没有检查长度会溢出,推荐使用strncpy,笔试面试也经常问到。同时经常浏览安全相关的新闻,缓冲区溢出攻击是很常见的一种。那缓冲区溢出为什么可以攻击。今天通过strcpy进行简单的演示。 如下是guess_pwd.cpp代码#include #include #include转载 2014-09-02 10:24:17 · 4651 阅读 · 0 评论 -
使用转移表
1、使用转移表,避免过多的switch-case计算器为例,operation(+-*/) -- function(add,minus,multi,divide)switch(operation){case .... -> double(*oper_fun[])(double,double) = {add,minus,multi转载 2014-09-15 21:36:01 · 649 阅读 · 0 评论 -
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】转载 2014-12-30 17:42:41 · 748 阅读 · 0 评论 -
设计模式原则详解
目录(?)[+] 我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 面向对转载 2015-01-05 19:31:08 · 734 阅读 · 0 评论 -
Dll调用
系统是在什么时候调用DllMain函数的呢?静态链接时,或动态链接时调用LoadLibrary和FreeLibrary都会调用DllMain函数。DllMain的第二个参数fdwReason指明了系统调用Dll的原因,它可能是::DLL_PROCESS_ATTACH、DLL_PROCESS_DETACH、DLL_THREAD_ATTACH、DLL_THREAD_DE转载 2015-04-13 10:07:18 · 731 阅读 · 0 评论 -
给函数增加Debug头(二)
关于给函数增加Debug头,博客内已有一篇文章对此进行阐述:给函数增加Debug头。此篇为更具有实用工程价值的基于Astyle的开发版本,附有源码工程原创 2013-07-19 01:27:01 · 1788 阅读 · 0 评论 -
给函数增加Debug头(三)
对某6万多行代码的项目实战应用时,作出以下调整:1、为满足非C99标准,不允许在中间定义变量,使用DEBUG_START、DEBUG_END使用大括号的方式包含函数2、修改add.bat,边调试AStyleDbg边调用输出添加头3、修改astyle工程的输出文件名4、不使用log_Log写到文件,使用OutputDebugStringA速度确实快很多(OutputDebug原创 2013-07-23 21:00:19 · 1415 阅读 · 0 评论 -
给函数增加Debug头 - windows平台的普通打印调试处理
笔者在VS2008和VC6.0两种常用平台应用此工具,发现VC6.0版本不支持__FUNCTION__宏,有高手自定义的__FUNCTION__实现在此。 有几个问题需要注意:1、在MFC环境下报错的问题:①#error WINDOWS.H already included. MFC apps must not #include 。无奈的解决方法是把自动添加上的调试头文件#i原创 2013-07-23 21:14:27 · 1910 阅读 · 0 评论 -
编程语言之问
从上大学开始接触C,到后来C++、Java、汇编、Javascript、pb、vb,到现在工作时学到一半耽搁了的clips,除了C用的多、C++学得较多之外,其他的都只能算是涉猎过。 现在在考虑一个DLL函数测试接口的时候,需要知道怎样由窗口输入的字符串“int add(int 3,int 4)”变成运行时的代码:typedef int (WINAPI Add)(int a,i原创 2011-07-24 21:40:46 · 1020 阅读 · 0 评论 -
ftp 脚本 超时设置
今天刚学了一点shell脚本的编程知识,写了一个ftp脚本,如果没有设置目录则设置目录,并上传文件到服务器该二级目录。如下:#!/bin/shcp $1 $2ftp -n $3 <<EOFquote USER $4quote PASS $5mkdir $6cd $6mkdir $7cd $7binaryput $2 $1quitEOF其中$1、$2、$3、$4、$5、$原创 2011-07-26 22:42:20 · 12452 阅读 · 1 评论 -
C语言指针传参
今天搜到一段关于linux下C语言获取系统时间的一段代码:time_t now = time(0);struct tm *tnow = localtime(&now);printf("%d-%d-%d %d:%d:%d\n",1900+tnow->tm_year, tnow->tm_mon+1, tnow->tm_mday, tnow->tm_h原创 2011-07-27 15:35:27 · 3037 阅读 · 0 评论 -
2011-5-19至2011-9-8小知识点日志
2011-5-191、db文件,vc操作2、windows shell 编程,显示桌面3、sql insert into,当列不完整时,INSERT INTO "表格名" ("栏位1", "栏位2", ...) VALUES ("值1", "值2", ...)4、创建guid字符串,原来早就有这个了,今天用到2011-5-201、VC判断数据库中项是否为空:如果你是getc原创 2011-09-08 14:16:27 · 4916 阅读 · 0 评论 -
小知识点日记 2013-1-17 至 2013-6-13
2013-1-17 15:36:431、IOS学习1)从终端打开Finder:open .2)从SCToolbarButton按钮check out工程报错:先从终端svn checkout,然后从SCToolbarButton更新3)xcode打开看不到工程界面,只有后台进程时,选择window->welcome to Xcode进入4)svn containing work原创 2013-06-13 17:44:33 · 2085 阅读 · 0 评论 -
开发一个简易的任务监控程序
需求:时刻监控任务列表,如果需要一直启动的程序未开启,则开启原创 2013-07-05 13:16:15 · 3502 阅读 · 1 评论 -
从汇编看待变量初始化
通过查看vc、gcc编译器的反汇编代码char *str="helloworld"char str[]="helloworld"char str[11]="helloworld"char str[11];str[0]='h',....,str[10]='\0'四种初始化的效率区别原创 2013-07-14 16:36:57 · 3179 阅读 · 0 评论 -
调试程序过程中的情绪控制
个人觉得区分高手和低手最主要的原因不是看过多少编程的书,而是心态、情绪相关的东西。负面的情绪带来低效、逃避甚至是放弃,自己也经常犯这样的错误。也许这就是性格里的弱点吧,需要克服。 负面的情绪在具体的程序调试步骤中,分为五个步骤,或者五种深浅程度,从初级到中毒已深依次为:1、否认:不可能是我的问题,肯定是另一个人负责的模块的问题2、愤怒:擦,怎么上一波搞开发的遗留这么多bu原创 2013-07-24 20:17:38 · 1386 阅读 · 0 评论 -
用户体验之一——动态排序
本文的标题至少说明了三点:我是一个初级程序员;本文的内容与用户体验有关;我目前所理解的提升用户体验的手段之一是动态排序。 动态排序的意思是:根据之前用户作出的操作,动态地引导用户作出后续的操作。 这句话说的太抽象,但是现实中有很多例子可以解释这句话。 例如,在用sqlserver2000(只用过盗版的)的查询分析器的时候,大部分初学者或者小部分的劳累的程序员会注意不到原创 2011-03-10 20:59:00 · 1495 阅读 · 0 评论 -
小知识点日志2012-11-22 至 2013-1-9
2012-11-22 14:41:561、快捷方式 打开“注册表编辑器”,找到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer],在右侧窗口新建或修改名为link的二进制值,将其设置为00 00 00 00,这样即可去掉新建的快捷方式名称前的“快捷方式”文字开始 运行 输入reg add "H原创 2013-01-15 18:46:58 · 2123 阅读 · 0 评论 -
windows+cygwin用命令行打开窗口目录
第一次尝试是浅层的google,没找到合适的资料第二次尝试是自己写windows下的opendir.exe命令,拷贝到cygwin/bin目录下。发现vc编译的exe是可以通过cygwin直接调用的,但是不知道opendir.exe功能应该怎么实现第三次尝试是搜索windows下打开目录的命令:“windows open directory from command line”为关键字在g原创 2013-05-06 17:27:46 · 6401 阅读 · 2 评论 -
SD卡电脑读取失败但是相机可读的问题描述和解决方案
硬件环境:相机:EOS550D 电脑:联想G460 SD卡:16GB金士顿SDHC卡 软件环境:电脑:win7-32位现象描述:SD卡放置在相机中时,可拍照,删照片。SD卡放置在电脑SD插槽中时,系统可以显示SD卡的盘符,但是容量是0,并且自动弹出提示需要重新格式化,如图1;点击“格式化磁盘”之后,在图2显示的对话框中无论何种设置(包括文件系统格式、分配单元大小、是否快速格式化),显原创 2013-06-11 12:23:33 · 12553 阅读 · 1 评论 -
给函数增加debug头(一)
调试程序时,经常需要查看程序的函数调用的流动方向。在PC上很简单,可以F10、F11单步调试查看或者gdb命令行查看。不过实际调试发现,在处理多重继承和虚函数的调用时,vc-express-2008的调试器单步并不能很好的发挥效用【目前还未单独针对这个结论做样例,以后再补上】。而在嵌入式设备上却很难实现单步调试。打印日志就成了很有用的调试方式。然而,在比较庞大的程序里,所有的函数头手动添加调试语句原创 2012-07-05 18:38:25 · 2768 阅读 · 0 评论 -
针对需要频繁调整控件位置的客户端UI框架的构思
标题有点长,但是大体上讲清楚了本文想要说明什么。做过客户端UI编程的童鞋,肯定都经常遇到根据不同的显示分辨率、客户需求的变更等原因,需要不断调整布局的经历。Qt本身有个自适应的Layout,就像弹簧一样,可以修改类似弹性系数的参数调整自适应布局的位置。然而,大多数情况下仍是不满足要求的,比如两行控件数目不同,要求两行控件中第一行的A和第二行的B严格对齐的情况。这种不受控的因素导致常常仍使用基于像素原创 2012-08-08 17:03:40 · 1172 阅读 · 0 评论 -
gdb调试学习 (一)
这一部分由阅读 《The Art of Debugging withGDB,DDD,and Eclipse》整理,以知识点形式一条条列举。本书讲解很详尽,是一本不错的调试入门书籍。不过作为“the art”开头的书,感觉内容分量不够。-------------调试基础------------------1、GDB:GNU Project Debugger,针对基于linux平台原创 2012-07-17 15:38:29 · 1094 阅读 · 0 评论