- 博客(49)
- 资源 (9)
- 收藏
- 关注
转载 LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
LNK1112: module machine type x64 conflicts with target machine type X86 The problem has been solved. Many thanks to steve.Here is the solution, for those might have the same problem :)1. To ch
2009-12-31 02:38:00 9184 1
转载 Visual Studio调试之断点技巧篇补遗
讲完Visual Studio调试之断点技巧篇以后,翻翻以前看得一些资料和自己写的一些文章,发现还有几个关于中断程序的技巧在前面的文章里面遗漏了,决定还是在这里总结一下。当然啦,如果你知道这些技巧,忽略这篇文章好了,:)在程序启动的时候将调试器附加上去可能有人会对这个问题有一些争议,因为大部分情况下我们只需要在调试器(Debugger)里面直接启动被调试程序(Debuggee)就可以在程序
2009-12-30 19:06:00 1842
转载 Visual Studio调试之符号文件
前面在不能设置断点的检查步骤和Visual Studio调试之断点进阶篇提到了调试符号文件及其作用,这篇文章我将要介绍调试符号文件的一些用法,如果你已经很熟悉调试文件的话,尽可以跳过本文。调试符号文件为调试器提供了从二进制机器代码地址到源代码文本文件代码行的映射.因此有了符号文件,我们才能:1. 设置断点,因为调试器需要符号文件提供的映射关系,将源代码行的行号转换成对应的机器代
2009-12-30 15:35:00 1563
转载 VC manifest
从VS2005开始,微软在VC的编译选项中添加了manifest这个功能,这将有助于软件以Side-by-Side方式运行。 采用/MD和/MDd运行时库选项的项目manifest是必要的。当程序启动时发生类似下图找不到MSVCRxxx.dll时可能就是程序没有正确的嵌入清单文件。怎样给程序嵌入manifest清单? 打开默认的manifest链接功能需要修改两处配置
2009-12-30 14:57:00 2907
转载 Http Client Protocol Issues
Http Client Protocol IssuesIf you use any of these solutions, Please let me know so I can track if any of this is useful to you! Thanks! This is an area to share observations I have made working
2009-12-29 20:53:00 1304
转载 判断程序时否跑在64bit机的WOW64模式下
判断程序时否跑在64bit机的WOW64模式下其中程序有三种情况:一是64bit的程序跑在64bit下,那么不是wow64模式,返回0二是32bit程序跑在64bit下,是wow64模式,返回1.三是32bit程序跑在32bit下,返回0.typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS
2009-12-29 11:03:00 2142 1
转载 WOW64
微软64位环境中出现了一些新的兼容64位的数据类型,因此您可能需要对代码进行少量的更改。关键的一点是所有现有的 Win32 知识都可以直接应用到 Windows 64 位版本中,并且您的大部分代码都可以针对 64 位平台进行编译,而无需更改。这也意味着您可以从单个代码库构建代码的32 位和64位版本,减少了由于维护两个代码库所带来的维护开销。但是,在两个操作系统版本之间存在着非常重要的一些差异
2009-12-29 10:43:00 2284 2
转载 调试运行于64位机上的32位w3wp进程
公司使用的服务器装的是64位的2003系统,以32位的形式运行着iis6.借助 <span class="t_tag" onclick="function onclick(){function onclick(){tagshow(event)}}">Windows Server 2003TM Service Pack 1,IIS 6.0 可以在 64 位 Windows 上
2009-12-29 10:23:00 2975
转载 如何:针对 64 位平台配置 Visual C++ 项目
如何:针对 64 位平台配置 Visual C++ 项目 本主题介绍如何使用 Visual Studio 集成开发环境 (IDE) 中提供的项目配置将 C++ 应用程序设置为面向 64 位平台。若要开发 64 位应用程序,必须至少安装两个 Visual C++ 64 位编译器中的一个,否则 64 位项目配置将无法在 IDE 中使用。有关信息,请参见 <a id="ctl
2009-12-29 02:06:00 1126
转载 用NERO刻录ISO文件制作启动盘
关于用NERO刻录ISO文件,制作XP启动盘的个人经验今天我下了一个原版XP SP2的ISO文件,用NERO制作了一个安装光盘,说说我的做发,供 大家参考:1。首先安装好NERO7。0,打开NERO 2选择好镜像文件ISO我选择的8X在刻录,一次就成功,可以安装启动了
2009-12-27 12:21:00 3182
转载 大小端
#include "stdafx.h"#include "stdio.h"typedef union tagEN{ int a; char c[4];} EN_UN;int main(int argc, char* argv[]){ EN_UN en; en.a = 0x12345678; if (0x78 == en.c[0]) { p
2009-12-26 19:40:00 695
转载 Visual C++ 64 位迁移的常见问题
用 Visual C++ 创建在 64 位 Windows 操作系统中运行的应用程序时,应注意以下问题:在 64 位 Windows 操作系统中,int 和 long 是 32 位值。对于计划为 64 位平台编译的程序,应注意不要将指针赋给 32 位变量。在 64 位平台上,指针为 64 位,如果将该指针赋给 32 位变量,则应截断该指针值。在 64 位 Windows
2009-12-26 01:39:00 929
转载 深入分析C++中char * 和char []的区别
在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include using namespace std;main(){
2009-12-25 23:51:00 654
转载 Visual Studio 2010开发部署64位程序
Visual Studio 2010将于2010年第一季度发布,今天我们将探讨的是Visual Studio 2010开发部署64位程序。通常来说,采用64位的应用程序与操作系统能够在很大程度上改善性能。这主要是因为其可以提供更大的内存访问。如普通的32位应用程序,内存最多只支持4G,这包括操作系统运行所需要的内存。为此如果应用程序所占用内存的增加势必以减少操作系统所占用的内存为代价。因为总的内存
2009-12-25 19:21:00 2063
转载 Linux系统下内存申请应用的方法原理总结
1. 地址空间的管理 物理地址都是有内核管理的, node-->zone-->mem_map-->page, 所有的物理页面都在mem_map数组中的页帧对应, 然后不同的page有分为DMA,normal,highmem三个zone。 内核线性地址空间, 实际上只是低端内存才有线性地址,0---896MB部分。 内核虚拟地址, 低端内存的虚拟地址与线性地址是一样的。 高端内存只有在映
2009-12-18 11:14:00 1695
转载 子类是怎样调用父类的成员函数的
1. 子类是怎样调用父类的成员函数的?即this指针是怎样传递的,需要移动位置吗? ********************************************************************************************答:继承分实继承和虚继承两类。虚继承是为了解决棱形继承时祖父类对象不唯一而提出的继承方式。 实继承: 子类
2009-12-18 11:10:00 7108
转载 malloc 的工作原理
阅读调试下面代码,将使你明白malloc 的工作原理/* 整理: hjjdebugtime: 2009/4该函数演示了malloc 的工作原理:1. malloc 在一块平台的内存区管理内存(可以称之为堆)2. malloc 由管理块和数据块构成3. malloc 首先以链表的方式搜索已管理的内存,没有找到,再从大池里扩展一块进入valid_address 管理区 */#include #i
2009-12-18 10:53:00 1147
转载 再论逻辑地址,线性地址和物理地址
前段时间在看操作系统内存部分原理的时候,见到了很多对各种地址的不同解释。呵呵,真是教科书不一样,解释也是千差万别。真是可怜了我这种将教科书视为神明的人了(曾经)!Andrew S. Tanenbaum在自己的《现代操作系统》中并没有给出明确的定义(或者是我太大意遗漏了?)。这就是高人的方法,既然是只可意会不可言传的东西,那么我就不给你做个定义。况且计算机软件相关的东西,做定义真的是远远没有作陈述来
2009-12-17 18:02:00 784
转载 逻辑地址,物理地址,线性地址...
一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到 最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它
2009-12-17 15:58:00 765
转载 逻辑地址、线性地址、物理地址和虚拟地址
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏
2009-12-17 15:43:00 1138
转载 汇编看c之一,简单函数调用
简单的函数调用,通过简单的函数调用反汇编可以清楚了解如下1.栈到底是什么,如何操纵栈的?2.参数和临时变量是以什么形式在哪存放?3.如何传递返回值? 举例:#include int add(int a,int b){ int c=0; c=a+b; return c;}int main(void){ int x=0; i
2009-12-17 00:23:00 3957 1
转载 一组实现邮件发送功能的C++封装类 — SMailer
一组实现邮件发送功能的C++封装类 — SMailer作者:晨光(Morning)下载示例源代码这个程序是笔者近日在实验邮件发送系统时写的,原本只想实现功能了事,可也许是程序员的惯常品性所至,几经完善的结果就成了如今这个样子了。网上也有不少有关于此的源码,但这些程序多半是不完整的,或者属于示例性程序,无法直接拿来使用。一些网络编程的书也有类似介绍,但又过于复杂了。笔者所写的这个程序以上述资源作
2009-12-16 11:51:00 1516
转载 汇编语言超浓缩教程
“ 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WI
2009-12-15 23:52:00 1008
转载 strtok 运行时库实现
/****strtok.c - tokenize a string with given delimiters** Copyright (c) 1989-2001, Microsoft Corporation. All rights reserved.**Purpose:* defines strtok() - breaks string into series of to
2009-12-15 15:21:00 530
转载 C++内存管理
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C
2009-12-15 11:44:00 795
转载 Unicode编程
例子:CString s; int i = 64; s.Format("%d", i);以上代码在运行的时候出现以下异常,e:/uniargusvc/andytest/andytest/test.cpp(11) : error C2664: “void ATL::CStringT::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [3]
2009-12-12 19:42:00 939
转载 如何把用VC6生成的项目转化成VC7的项目并且变成WinXP的风格呢?
测试平台Windows XP + VS.net beta 2,假设我的应用程序名是abc.exe。 ①:复制一个[应用程序名].manifest(用VC7生成的)到res目录 ②:把[应用程序名].manifest改成abc.manifest文件名, 再把文件里的内容name="Microsoft.Windows.[应用程序名]"改成name="Microsoft.Windows.ab
2009-12-12 10:55:00 523
转载 MD5
简介MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法、Hash算法),主流编程语言普遍已有MD5实现。 将数据(如英文字符串,汉字,文件等)运算为另一固定长度值是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 开发历程在90年代初由MIT L
2009-12-11 10:27:00 928
转载 编程中经常能遇到LNK2005错误
编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该
2009-12-10 22:19:00 457
转载 Linux slab 分配器剖析
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存管理内存管理的目
2009-12-08 21:12:00 764
转载 C语言打印二进制的代码
#include"stdio.h"#define N 32#define M 1void print(unsigned c) { int i; for (i=0;i{ if(i%8==0)printf(" "); putchar(((c&M)==0)?0:1); c} printf("/n"); }int main(
2009-12-08 20:07:00 6952
转载 不要混合使用运行时库的静态版本和动态版本!!!!
不要混合使用运行时库的静态版本和动态版本!!!! 最近在开发一个项目,有比较多的dll模块,以前测试时一直没有发现问题,运行的很正常。今天要发布一个新版本了,就用Bounders Check检查了一下。乖乖,很多错误阿!全部都是: Allocation Conflict: Attempting to call global_operator_delete on 0x01566E68; po
2009-12-08 15:01:00 675
转载 C运行时库详解
运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求,出现了严重的问题。C运行时库使用了多个全局变量(例如errno)和静态变量,这可能在多线
2009-12-08 14:16:00 763
转载 如何理解Crun-timelibrary(C运行时库)
1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX
2009-12-08 14:04:00 603
转载 关于传参的问题
关于传参的问题可以看这个:http://www.cs.umbc.edu/~chang/cs313.s02/stack.shtml关于传参和返回值,可以看这个:http://blog.chinaunix.net/u/12783/showart_1934253.html要不就像langue说的,大家别搞C了吧http://blog.chinaunix.net/u/12783/showart
2009-12-07 16:17:00 570
原创 try...catch 可以抓取指针引用错误
#include "stdafx.h"#include "comdef.h"void test(){ int *p; p = (int *)0x12345; *p = 1;}int _tmain(int argc, _TCHAR* argv[]){ try{ test(); }catch(...){ printf("catch"); } return 0;}
2009-12-04 00:52:00 704
转载 指针与数组定义小结
用变量a给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer toan integer) d) 一个有10个整型数的数组(An array of 10integers) e) 一个有10个指针的数组,该指针是指向一
2009-12-03 16:32:00 1890
转载 MultiByteToWideChar和WideCharToMultiByte用法详解
//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR:// norains//DATE:// 第一版:Monday 25-December -2006//
2009-12-02 22:24:00 634
转载 TJJTDS的由来
TJJTDS的由来 有三个人到非洲探险,不小心偷看到了一位酋长的女儿在洗澡。被抓后,酋长问第一个人想死还是想被弹鸡鸡,他当然回答说弹鸡鸡。于是被拉下去tjj50下,惨叫……。又问第二个人想死还是想被弹鸡鸡,他犹豫了一下,好死不如赖活,他也选择了弹鸡鸡,于是被拉下去tjj100下,极其刺耳恐怖的惨叫,被拖回来已经奄奄一息,而且jj好象已经完全废了。又问第三个人,想死还是想被弹鸡鸡。他犹豫半天,
2009-12-02 20:19:00 989
[图解TCPIP(第5版)
2015-05-26
jquery-1.11.3
2015-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人