- 博客(52)
- 收藏
- 关注
原创 使用Maven 编译 storm 源码可能碰到下载依赖jar 的问题
网上很多文件使用 lein 编译 storm 源码,但是我下载的版本 apache-storm-0.9.2-incubating 中没有lein 工程文件,而是有 pom.xml,可以使用maven 编译。在storm 工程的最上层目录执行: mvn package可能会碰到错误如下描述(jackson-core-2.0.6 只是一个例子):Failed to execut
2015-06-16 19:13:54
6013
原创 如何判断msi安装包程序是否安装及安装路径
使用MSI的函数可以检测软件是否安装,获取安装版本信息等,前提是软件为.msi文件安装的。使用对MSI操作的函数需要加入一下几个头文件:#include #include #pragma comment(lib, "Msi.lib")检测软件是否安装获取软件的安装路径如果软件是通过.msi文件安装的,
2015-04-29 20:36:09
6590
原创 《计算机程序的构造和解析》 第2章习题选
2.17(define (last-pair items) (if (null? (cdr items)) (car items) (last-pair (cdr items))))2.18(define (revert items) (define (revert-iter src_items dst_items) (if (null? src
2015-04-13 22:05:01
755
原创 C++智能指针的简单实现代码
其中附带部分测试代码#include #include #include template class SmartPointer{public: SmartPointer(T *p); SmartPointer(const SmartPointer &pointer); ~SmartPointer(); SmartPointer& operator=(const Sma
2015-04-11 22:46:44
596
原创 Visual Stdio 常用调试技巧
.natvis 文件的介绍Create custom views of native objects in the debugger (e.g. S:\SDK\Qt\Qt5.4\qt5.natvis)https://msdn.microsoft.com/en-us/library/jj620914.aspx使用VS 调试 javascript 配置: 先在IE 中设置 Int
2015-04-03 11:10:35
684
原创 VS 调试技巧之特殊变量查看
查看内存地址的内容:(在watch窗口输入)(char*)0x0000*** 类似于使用memory窗口查看(char*)0x0000***,10 查看该地址连续的10个char数据$err(或@err) 显示错误码,同 ::GetLastError();num,hr 显示数字num对应的错误信息$err,hr 显示线程的上一个错误代码和错误的
2014-12-27 13:53:56
1902
原创 QT QSlider 属性 singleStep 与 pageStep 的区别
当焦点在slider 上时,通过pageup, pagedown 按钮或者点击到滚动栏上移动的数值为pageStep;通过左右方向键按钮移动的数值为singleStep.注意:在windows 系统中,鼠标移动到slider 上使用滚轮操作时的默认步长是 min(3*singleStep, pageStep), 但Mac 系统下貌似只是 3*singleStep,qt 源码中通过宏 Q_W
2014-12-27 13:42:47
8932
原创 输出一组元素的全排列(可包含重复元素)
#include #include #include template int Compare(const void *a, const void *b){ return *reinterpret_cast(a) - *reinterpret_cast(b);}template void swap(T &a, T &b){ T tmp = a; a = b; b =
2014-04-15 21:44:07
810
原创 关于Windows 7 中替换程序的图标不起作用
在Win7 下给程序添加了一个图标,结果没起作用,最后发现:Windows 应用程序都会有图标的缓存,换掉后可能不会立即生效,只有清空过图标缓存才能看到修改后的效果。清空图标的方法是在运行(Win+R) 框中运行命令:ie4uinit.exe -ClearIconCache参考:http://superuser.com/questions/499078/refresh-icon
2014-01-14 18:52:40
983
原创 二进制标准输入输出防止"\r\n"与"\n"之间自重转换
使用 std::cin.read() 从文件或者管道中读取字符时,当读到 "\r\n" 时会自动转换为 "\n",同样std::cout.write() 写"\n" 时会写成 "\r\n"。如果要以二进制模式读写文件,可以采用:std::filebuf fb;fb.open ("test2.txt", std::ios::in | std::ios::binary); 一种更通用的方式是
2013-12-31 19:02:44
2291
原创 VS2012 编译支持Windows XP 的可执行文件
1. 如果使用vs2012 编译 .exe 文件,只需将 Platform Toolset(Property->Configuration Properties->General->Platform Toolset) 默认值从 v110 改为 v110_xp 就可以了。2. 如果使用makefile 编译,将编译出来的 .exe 文件使用 depends 查看,依赖的dll 都没有问题,那么在
2013-11-26 19:55:14
2988
原创 Win7 线程语言设置错误可能引起窗口排版变化
前些天在Win7 下的一个程序弹出打开文件的对话框,发现它的内容全部右对齐,并且使用debug 版调试的时候没有问题,但是使用release 版就有问题。开始以为程序误设了对话框对齐方式,但没有找到什么线索,反而解释不通为什么debug 版本可用。后经高手指点才知道这种现象可能语言被设置成阿拉伯国家,因为那里的习惯是右对齐的(看来不仅古代的我们是一这样的,也才知道windows 的通用窗口需要考虑
2013-06-30 21:27:25
1409
原创 MacOSX WebView 对 iframe 设置cookie 有可能失败
在使用 WebView 实现用户登录,结果死活登录不成功,Safari 则完全没问题,对此表示很无奈,开始怀疑是否WebView 哪里设置的问题,但没找到依据。还好朋友提醒抓包试试,由于Mac 下没有找到Fiddler ,于是尝试使用 CharlesProxy 结果适用版非常恼人,而且开vpn 可能就什么都抓不到。还好有个Wireshark 有Mac 版本的,虽然开始不会用,但是之后发现功能的确很
2013-05-31 19:31:16
2607
原创 MacOSX 系统开发中 webView 页面的强制刷新
MacOSX 中使用 webview 能方便的加载网页,但网页中如果有js 执行失败、或加载未完全成功则有可能使整个网页都不刷新,特别是第一次加载可能页面一直是白板,只有当鼠标右键点击或焦点转移到其它应用时才能看到页面的刷新。最终找到一种强制刷新网页的方法:[[[[webView_ mainFrame] frameView] documentView] layout];其中webView_
2013-04-23 19:15:58
3424
原创 Mac 模态窗口关闭事件的处理
在Mac 开发中如果使用 runModalForWindow 弹出模态对话框,那么在关闭时需要解除模态状态,否则可能进入一个假死状态。总结了一下大概可以使用以下几种方式处理窗口window 的关闭事件:1. 通过创建 MyWindowDelegate : NSObject 并且实现方法windowWillClose: 如下:- (void) windowWillClose:(NSN
2013-03-29 20:30:29
8261
原创 IE8在XP下的一个Bug?
在XP 系统中使用IE8 通过 https://login.yahoo.com/config/login_verify2?&.src=ym 登录 Yahoo Mail,登录后可以发现网址没有改变,但是在地址栏中输入JS代码 javascript:alert(document.URL); 得到的是 *.mail.yahoo.com/* 。
2013-03-13 20:14:01
654
原创 CoWaitForMultipleHandles 在XP下的问题
虽然在msdn 中提到CoWaitForMultipleHandles 函数的第一个参数DWORD dwFlags可以使用 COWAIT_DISPATCH_CALLS ( = 8) ,但在XP 系统下使用该参数是发现返回E_INVALIDARG(参数错误),最后发现XP 下dwFlags 需要满足 dwFlags&~3 == 0 才合法,测试Win7下未发现问题。(可以给 dwFlags 传 0,
2013-02-28 18:44:41
1070
原创 WebView中JavaScript与Objective-C的交互
MacOS开发中WebView已经实现了浏览器的基本功能,使用十分方便,要在WebView中实现JS调用Obj-c的代码个人觉的需要一下几个基本步骤:1. 要使用WebView需要添加WebKit.framework。2. 在Window中添加WebView之后需要在右侧属性的connection设置frameLoadDelegate, resourceLoadDelegate, UIDe
2012-09-28 09:17:01
7019
原创 Windows下判断PE文件是32位还是64位程序
int __stdcall get_file_machine_bit(const WCHAR * pwszFullPath) { FILE * peFile = NULL; _wfopen_s(&peFile, pwszFullPath, L"rb"); if (peFile == NULL) { fclose(peFile)
2012-09-01 22:02:40
7879
原创 Windows XP 64位注册表删除问题
32位程序在Windows XP 64位系统中使用RegDeleteKeyW存在问题。如下代码能再Win7中正常删除键值HKEY_LOCAL_MACHINE\SOFTWARE\Test , 但是在XP 64位系统中无法工作。HKEY hkey = NULL;if (::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE", 0, KEY_QUER
2012-08-21 19:34:17
2967
原创 Windows64位系统注册表读取
//判断HKEY_CURRENT_USER\Software\Microsoft\Windows Media\WMSDK\General中是否存在ComputerNameDWORD dwAccess = KEY_QUERY_VALUE | KEY_WOW64_64KEY; //KEY_WOW64_32KEYbool existKey = false;HKEY hKey = NULL;if
2012-05-31 22:03:56
5117
原创 Windows批处理文件(.bat文件)
本文是初学.bat文件用法的一些总结。.bat文件一般用于批处理,它的调用就是双击文件或在DOS环境下键入文件名运行。如在C:\Workspace下有个Test.bat,在命令行中输入"C:\Workspace\Test.bat"就可以运行,或者将当前目录切换到C:\Workspace然后键入Test.bat运行。个人觉的.bat文件其实将很多条DOS命令整合到文件中整体运行,一个bat文
2012-04-26 20:03:45
2272
原创 Vs2010调试其它程序
在“Project->Configuraton->Configuration Properties->Debugging”中如置:Command:c:\windows\system32\notepad.exe; 表示调试开始时启动的程序。Command Arguments:c:\New Text Document.txt; 被调试程序调用的文件。按上述设置知道后只要按
2012-04-24 20:54:03
921
转载 Mathtype安装与批修改公式的字体大小
网上一般都分开讲,这里整理了一下,希望能一气呵成。(以Mathtype6.6a版本为例)安装:首先安装并下载,最好注册一下,不然很多功能不能使用。安装后,如果Mathtype没有在word的菜单栏上出现,则将Mathtype的几个文件拷贝到word对应的目录下:"C:\Program Files\MathType\Office Support\MathType Commands 6
2012-03-27 19:32:50
3875
原创 初识Ruby
Ruby一个重要思想就是一切皆对象其中常数都可以当做对象使用函数,ruby直接就支持大数。9.class #显示数据类型3.zero? #zero? 其中问号是函数的一部分10.modulo(3) #取余(3.3).round #近似值ruby函数用def定义,其中返回值是否使用return是可选的,它默认会返回值。Ruby变量:ruby变量的使用不需要类型
2012-01-18 18:52:38
947
原创 VS2010几个常用功能
选中系统函数或系统类型,按F1,直接跳到MSDN中的相关条目。单击 Solution 项目中的 Properties可以配置编译选项,如是否优化代码,是否生成调试信息等。将C++代码中输入的Tab键转换成空格, Tools->Options->Test Editor->C/C++ ->Tabs 中设置使用Insert spaces就可以了。Debug模式下:查看反汇编代码: 右键鼠
2012-01-10 20:18:52
1473
原创 svn命令与svn杂谈
svn是一个很不错的版本管理软件,虽然也偶尔用用,但都是鼠标操作,原来svn还有命令行。svn命令不会对当前目录和代码库一起操作,并且svn的操作都是原子操作。版本控制软件也不止svn,还有cvs、git等。svn新建本地服务器:新建一个文件夹,然后鼠标右键选中"Tortoise"菜单中的子菜单"Create repository here",就可以了。使用形式只要将URL的改
2011-12-07 14:28:24
795
转载 Windows下的命令编译与Makefile
一般来说在程序编译的中,无论是C、C++,首先要把源文件编译成中间代码文件,在Windows下是 .obj 文件(UNIX下是 .o 文件),即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 NMAKE(Microsoft Program Maintenance Utility)的命令行语法
2011-12-01 20:48:06
9504
原创 安装boost笔记
boost是一个开源的库(主要在C++中应用),其中包含着许多有用的函数库,比如智能指针、数据结构、数学函数等。boost源文件并不很大,但是编译之后往往占用好几个G的空间,其中网上关于如何编译的文章也很多,这里只简单提一下。先下载或在vs2010命令行(编译工具可以是其它)(cd到*\boost_1_43_0\tools\jam\src下执行build.bat,然后,会在*\boost_
2011-12-01 10:21:25
590
转载 VC调试方法(笔记)
Ctrl+B或Alt + F9打开breakpoints(断点)设置对话框从上到下有三个输入框: 1. 输入一个表达式,当表达式的值发生变化时,断点会暂停,否则不暂停 2. 设定查看的数组或是结构的需要watch的个数 3. 设置循环过多少次 才暂停。对于VS2008:先设置断点,按alt + F9,或者是从菜单(Debug->Window->breako
2011-11-21 19:34:41
879
原创 设计模式期中小结
Head First设计模式笔记OO原则:封装变化多用组合,少用继承针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力应该对扩展开放,对修改关闭依赖抽象,不依赖具体类只和朋友交谈一个类应该只有一个引起变化的原因设计模式:抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不再需要明确指定具体类。修饰者模式:动态的将责任附加到对象上。
2011-11-19 21:28:41
572
原创 C/C++几个面试常见细节问题及解答
1. 下面两个表达式有没区别,什么区别?const char *p = "Hello"; char* const p = "Hello"; 2.输出什么,为什么? int t = 0;sizeof(t++); cout3.下面的赋值合法吗?其中的区别是什么?int a = 0;++a = 9;a++ = 9;4.下面程序合法吗?若合
2011-10-23 21:26:04
574
转载 MFC对话框小结
消息传递:AfxGetMainWnd()->Invalidate(); //向主窗口传递消息 HWND hwnd = AfxGetMainWnd()->m_hWnd; //获得主窗口句柄VC++ MFC编程各种窗口句柄获取函数详解 http://liuzhigong.blog.163.com/blog/static/178272375201121052238445/非模式对话框
2011-10-18 21:50:16
405
原创 异常处理入门例析
#include #include #include //参考《C++ Primer》int mdiv(int a, int b);int main(){ #ifndef NDEBUG // 预处理,在debug模式下调试 // VC下#ifdef _DE
2011-10-03 16:33:10
414
原创 C++中string小应用
/** 使用string实现字符串按单词反转* 如:olleH !dlrow => Hello world!*/#include #include #include #include using namespace std;int main(int argc,
2011-09-29 21:58:38
814
转载 C/C++编程中的一些概念问题
1.下面的代码会有问题吗?char* ptr = NULL;printf("%s\n", ptr);free(ptr);查资料发现当ptr=NULL时free()函数是不做内存释放的,所以上面的程序不会出错。至于printf("%s\n", ptr);利用VS20
2011-09-28 22:16:03
799
原创 学习Matlab强大的符号计算(解方程)
syms x1 x2; %定义符号变量syms y1 y2;clc[x1, x2] = solve('x1 + x2 = y1',... 'x1^2 + x2^2 = y2',... 'x1', 'x2') %求x1,x2用y1, y2表示的表达%求解y1 = 1,y2 = 5 时的函数值y1 = 1;y2 = 5;x1 = eval(x1) % eval %把符
2011-09-19 10:34:19
27139
原创 C语言二进制文件读写程序实现(基础)
由于对文件操作比生疏,这里拿一个最近的一个程序来学习和备忘。/*** 该文件实现将数字文本保存为二进制文件。* 这里保存的二进制格式为 unsigned short int* 这里主要用到fwrite,fread*/#include #include #de
2011-09-13 16:16:40
7822
原创 利用有限的几个数字(0~9)求一个数A大于正整数K且是最小的那个
网上看到一道笔试题,觉的还算能实现,没想到还是把简单题目的写繁琐了。/*** 题目:给定一个数组A,里面只出现0-9这10个数字,但不一定全部出现,* 然后给定一个K的值,求A中大于K的整数当中最小的一个,并输出。* 例如A={0,1}, k =12,则结果为10
2011-09-09 13:35:29
2111
原创 个人实现的大数模板(加、乘)
目前实现大数的加法及乘法,实现了几个OJ的题目作为测试,若有错误多指正。 #include #include #include /***************************************************************
2011-09-05 10:55:55
877
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人