
C/C++
beyondjhf_2008
这个作者很懒,什么都没留下…
展开
-
VS2005编译器选项
[size=medium]下面是一个完整的编译器选项分类列表。有关按字母顺序排序的列表,请参见按字母顺序列出的编译器选项。优化/O1 创建小代码 /O2 创建快速代码 /Ob 控制内联展开 /Od 禁用优化 /Og 使用全局优化 /Oi 生成内部函数 /Os 代码大小优先 /Ot ...原创 2009-05-22 14:02:51 · 146 阅读 · 0 评论 -
ICC编译和VS编译的区别
简单说来,ICC会做一些优化,性能会更高还有一个值得注意的地方就是:ICC和VS在编译结构体的时候处理默认属性有点差异[b]VS在编译结构体的时候,将默认变量和方法的权限视为publicICC在编译结构体的时候,将默认变量和方法的权限视为private[/b]...原创 2010-05-12 13:40:33 · 520 阅读 · 0 评论 -
一个C++错误率极高的解决办法,unresolved external symbol
错误描述:Error 1 error LNK2019: unresolved external symbol "public: __thiscall _PssResultRect::_PssResultRect(void)" (??0_PssResultRect@@QAE@XZ) referenced in function "struct _PssResultRect __cdecl PssRe...原创 2010-05-10 10:43:40 · 957 阅读 · 0 评论 -
解决工程中不能导出特定函数到dll中
在工程的linker的commandline中的Additional options加上/EXPORT:函数名,再编译一下工程就ok了。。顺便再附上dll函数查看器。。2010-04-20 12:59:52 · 150 阅读 · 0 评论 -
VS创建dll和调用dll
自己创建自己的dll库,有时候会显得特别方便,而且非常简单。。。下面就简单在VS2005上介绍dll库创建和调用的全过程。一:创建自己的dll1)创建一个win32 console application 选择dll然后创建一个DllTest.cpp code如下:// lib3.cpp : 定义 DLL 应用程序的入口点。//#include "stdafx.h"...原创 2009-12-31 09:18:02 · 189 阅读 · 0 评论 -
堆栈,堆栈,堆和栈的区别
[size=medium]堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵...原创 2009-07-04 19:33:42 · 121 阅读 · 0 评论 -
C++的内存对齐
[size=medium]什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的...原创 2009-06-13 22:39:53 · 115 阅读 · 0 评论 -
解析dll文件和lib文件的区别(如何利用VC创建DLL文件)
[size=medium].dll是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式,.dll还有其他的文件格式如.ocx等,所有的.dll文件都是可执行。 .lib是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的lib文件在那里。一般来说,与动态连接文件相对比,lib文件也被称为是静态连接库。当你把代码编译成这几种格式的文件时,在以后他们就不可...原创 2009-06-12 15:23:34 · 153 阅读 · 0 评论 -
从空dll工程中创建dll文件和使用dll文件
[size=medium]1、创建工程,选择Win32-Dynamic-Link-Library,选择空工程2、建立头文件cal.h (就是一个接口)内容如下:extern "C++" _declspec(dllexport)int add(int a,int b);extern "C++" _declspec(dllexport)int sub(int a,int b);...2009-06-12 15:13:29 · 140 阅读 · 0 评论 -
VC6中dll的创建和使用
[size=medium]一直很好奇C++的Dll是个什么东西... 最近终于知道了.. 1.创建project 选择Win32 Dynamic Link Library,然后 OK, 然后 选择带一个例子的那个 project 2.写一个简单的方法 在project中可以看到已经创建好的4个文件. dlltest.cpp StdAfx.cpp dll...原创 2009-06-12 14:41:12 · 179 阅读 · 0 评论 -
简单信息的加密实现
[size=medium]在互联网传输数据,安全性是一个非常重要的保证。。如何加密也成为了一个研究热点。。在C语言中,我们可以通过各种算法实现加密,以下是一个简单的加密和解密算法:加密时,将字符低四位取反,解密时,将低四位再次取反,代码如下:#include#define LEN 100main(){ char str[LEN]; int i; float x; ...2009-06-12 09:36:12 · 194 阅读 · 0 评论 -
函数指针的妙用
[size=medium]转来的,非常经典。。一小段精彩的 C语言,1和2实现相同的功能,欢迎大伙跟帖呵(特别感谢trio老师)1 void (*theUboot)(void); 。。。。 theUboot = (void (*)(void))(0x30700000); *theUboot(); 。。。。。2 (*(v...原创 2009-06-11 19:06:26 · 120 阅读 · 0 评论 -
各种排序算法
[size=medium]排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂度,从简单到难来分析算法。 第一部...原创 2009-06-03 08:50:34 · 79 阅读 · 0 评论 -
C++的explicit关键字
[size=medium]c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class MyClass{public: MyClass( i...原创 2009-06-03 08:38:33 · 97 阅读 · 0 评论 -
C++实现计算程序运行时间 高精度
#include #include using namespace std; void Test()//测试程序 { for(int i=0; i原创 2009-06-02 08:39:49 · 141 阅读 · 0 评论 -
VC++6.0中显示代码行小工具
[size=medium] VC++中也可以显示代码行啦。。这对调试程序很有帮助,主要是方便多了,下载我附件上的压缩包,解压后按里面的txt文件里说明做就ok了。。[/size]...2009-05-31 15:01:30 · 165 阅读 · 0 评论 -
关于C++函数重载及虚函数
[size=small]关于C++函数重载及虚函数 学校要搞什么知识点精讲,今天下午临时写了两篇关于C++中函数重载及虚函数的文章。只是打的讲义草稿,所以很多用语都很随便。 函数重载如何讲函数重载:What——函数重载是什么?why——为什么要用函数重载,没有函数重载会怎样?how——举例说明怎么...原创 2009-05-22 16:52:57 · 318 阅读 · 1 评论 -
C++多线程中用临界区控制全局变量的访问冲突问题
困扰了我很长时间的多线程访问全局变量今天终于解决了,所以得记录一下。。控制全局变量的方法很多,有信号量、临界区等。。这里我记录一个用临界区控制访问冲突的例子。。非常好用。。#include #include using namespace std;//首先做两个线程,实现两个线程间的同步 上次是利用互斥对...原创 2010-05-30 13:48:21 · 333 阅读 · 0 评论