一个不易察觉的逻辑错误

前段时间写网络程序练笔,写了个sniffer小程序,其中用到ip头:typedef struct tagIPHDR { u_char vhl; // version and length of header u_char tos; // type of service u_short totlen; // total length u_short id; // identification u_short flag_off; // flags and fragment offset; u_char tt...
2010-01-04 12:40 | 阅读 981 次 | 评论 0 条

算法加速小伎俩<一>

一、从O(g(n))到O(1) 例:输入字节x,输出x的置换(比特位恰好相反),函数名reverse_bit8。 这个算法很多地方都需要用到。你很快就可以找到很多高效的算法实现它。 比如1:通过逐位测试,按测试结果对结果进行或、移位运算。算法如下: unsigned char y = 0; for(int i = 0;i < 8;i++) { y = y << 1; if(x &amp; 0x01)//对最低位进行测试 y = y | 0x01; x = x >> 1; } 如果...
2009-06-11 00:58 | 阅读 2942 次 | 评论 3 条

error PRJ0003:生成“cmd.exe”时出错

error PRJ0003:生成“cmd.exe”时出错 网上搜到的解决方案: error PRJ0003:Error spawning 'cmd.exe' solution: tools=> Options => Projects and Solutions -> VC++ Directories page Executable files optionthen place below rows: $(SystemRoot)\System32$(SystemRoot)$(SystemRoot)\System32\wbem 它还不支持复制粘贴,只好一个字符一个字符的敲 ...
2008-12-23 15:56 | 阅读 16692 次 | 评论 0 条

error LNK2019

1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup msvcrtd.lib 产生这个问题可能的原因 1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain. 2. 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。 解决方法 1.进入project->setting->c/c++, 在c...
2008-10-29 15:35 | 阅读 8057 次 | 评论 0 条

CreateThread与_beginthreadex

CreateThread函数是用来创建线程的Windows函数。不过,如果你正在编写C/C++代码,决不应该调用CreateThread。相反, 应该使用Visual C++运行期库函数_beginthreadex。如果不使用Microsoft的Visual C++编译器,你的编译器供应商有它自己的CreateThred替代函数。不管这个替代函数是什么,你都必须使用。" "_beginthreadex函数的参数列表与CreateThread函数的参数列表是相同的,但是参数名和类型并不完全相同。这是因为 Microsoft的C/C++运行期库的开发小组认为, C/C++...
2008-09-09 23:40 | 阅读 19774 次 | 评论 1 条

【转载】fatal error C1010

在编译VC++6.0是,出现fatal error C1010: unexpected end of file while looking for precompiled header directive 的错误. 解决方法: 1、如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的 Settings,选择C/C++选项卡,从Category组合框中选中Precompiled Headers,选择Not Using Precompiled headers。确定。 2、在文件开头添加: #include "stdafx.h" ...
2008-09-02 14:05 | 阅读 4277 次 | 评论 1 条