
c/c++
Farmwang
博采众长,兼收并蓄!
展开
-
asp.net link oracle error ORA-06413: 连接未打开
1.按照文章中的方法自己 在机子上安装了 IIS7,选择.net扩展性 和 asp.net 2. 设置IIS应用池的属性 :启用32位应用程序 设置位 true3. 首先,部署要调试的项目到IIS上然后,设置项目属性 启动选项中的 使用自定义服务器: http://localhost/ORA-06413: 连接未打开连接数据库的程序所在原创 2015-08-25 15:05:15 · 1139 阅读 · 0 评论 -
温习c++ 基本功之标识符的作用域
1:局部作用域(Local scope) 从标识符的定义点开始到函数或复合语句之间的程序段。2:全局作用域(global scope)指构成C++程序的所有源文件。 在c++标准中,把全局作用域归入连接控制(linkage)范畴。全局域解析符(global scope resolution operator) "::"对global scope operator 进行原创 2015-09-26 16:00:41 · 982 阅读 · 0 评论 -
Notepad++ NPPExec 插件
notepad++能作为IDE的原理主要就是通过notepad++内置的命令执行器,去执行g++/g++和gdb命令,从而完成编译,调试,运行等功能,接下来介绍命令执行器中的一些命令1、cmd表示在cmd命令窗口中执行命令2、/k是cmd的参数,表示将后面的字符串作为命令执行3、$(FULL_CURRENT_PATH):是notepad++的参数,表示当前打开文件的全路径(原创 2015-09-26 14:47:41 · 3419 阅读 · 0 评论 -
memcpy 函数
1、memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);拷贝多少个?有一个size变量控制拷贝的字节数;函数原型:void *memcpy(void *dest, void *src, unsigned int count);用法:(1)可以拷贝任何类型的对象,因为函数的参数类型是void*(未定义类型指针),也就是说传进去的实参可转载 2015-09-26 09:03:35 · 457 阅读 · 0 评论 -
NppExe插件使用
1. 在“插件”->“NppExec”中选择“Follow $(CURRENT_DIRECTORY)”菜单项,表示Console窗口的当前目录随同文件;如果不选择的话,在建立脚本文件时就得自己使用cd命令切换到当前目录了; 2.Console技巧:在Console中键入的命令都作为Console 的附加进程,一些有窗口的进程在这里也不会显示窗口, 可通过ctrl+break 或 ctrl+c原创 2015-09-27 07:14:52 · 1086 阅读 · 0 评论 -
md /mdd /ml /mt/mtd
md /mdd /ml /mt/mtdVC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库 库文件Single thread(static link) ML libc.libDebug single thread(static l转载 2015-09-23 11:24:47 · 317 阅读 · 0 评论 -
CLR
按照.NET的说法,在CLR监视之下运行的程序属于“托管的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非托管的”(unmanaged)的代码。CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。原创 2015-09-23 11:41:59 · 350 阅读 · 0 评论 -
/ML /MD 等编译选项区别
/ML /MD 等编译选项区别多线程dll编译器librarythreadc三、功能 运行时库是程序在运行时所需要的库文件,通常以LIB或DLL形式提供: C运行时库 库文件 Single thread(static link) libc.lib Debug s转载 2015-09-23 11:27:44 · 2461 阅读 · 0 评论 -
关于Debug和Release之本质区别的讨论
转]关于Debug和Release之本质区别的讨论 原谅网址:http://www.builder.com.cn/2008/0706/964938.shtml 另参见,VC-Debug-Release出错的问题解决办法http://blog.youkuaiyun.com/xiaojianpitt/archive/2010/03/11/5369568.aspx 一、Deb转载 2015-09-23 12:31:38 · 308 阅读 · 0 评论 -
C Runtime Library 的来历
C Runtime Library 的来历msvcrt.dll (名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能. C Runtime Library 的来历, API, STL, MFC, ATL关系转载 2015-09-23 11:34:12 · 355 阅读 · 0 评论 -
mingw gcc window socket server
#define MINGW32#include #include #include #ifdef MINGW32#include #else#include #include #endif#define LISTENQ 10#define SERVER_IP "192.168.1.103"int main(int argc,char *arg原创 2015-11-12 20:48:44 · 1746 阅读 · 0 评论 -
vc++ ^ 符号
在VC++中用^符号表明使用的变量类型 不是VC++的类型,而是.Net类库中的类型。这样的变量,它的释放是由.Net的垃圾回收器来完成的。在释放的时候要负荷到垃圾回收器的处理要求。原创 2015-09-24 16:02:46 · 1219 阅读 · 0 评论 -
c bmp parse
#include #include #define fileheadlen 14#define BM 19778void IsBmpFile(FILE *fpbmp); long GetBmpLength(FILE* fpbmp);int GetBmpWidth(FILE *fpbmp);int GetBmpHeight(FILE *fpbmp);原创 2015-11-13 22:40:26 · 471 阅读 · 0 评论 -
C 语言bmp 解析
#include #include #define BITMAPFILEHEADERLENGTH 14 // The bmp FileHeader length is 14#define BM 19778 // The ASCII code for BM/* Test the file is bmp file or not */转载 2015-11-13 22:49:37 · 1092 阅读 · 0 评论 -
c 语言 鼠标事件 实例
#include #include #include #include int main(int argc, char* argv[]) { SetConsoleTitle("Hello World!"); HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄 INPUT_RECORD转载 2015-11-15 15:03:54 · 1775 阅读 · 0 评论 -
c 设置 控制台 颜色
#include #include #include int main(){ HANDLE hOut; // 获取输出流的句柄 hOut = GetStdHandle(STD_OUTPUT_HANDLE); printf("普通颜色看看\n"); SetConsoleTextAttribute(hO转载 2015-11-15 15:04:46 · 503 阅读 · 0 评论 -
c语言 基本I/O 操作
GetStdHandle()函数获得标准输入输出的句柄,参数STD_OUTPUT_HANDLE是个宏,代表标准输出,可以看作显示器SetConsoleCursorPosition(hout,coord); 看函数名称:设置控制台光标坐标,参数就是设备句柄,坐标,那么把标准输出的句柄传给函数,就可以把光标定位在对应的位置了(左上角位置是0,0然后向左 向下延伸)typedef原创 2015-11-15 15:06:13 · 1814 阅读 · 0 评论 -
MBR 代码分析
mov ax,0xb800 mov es,ax一直以来,0xB8000~0xBFFFF 这段物理地址空间,是留给显卡的,由显卡来提供,用来显示文本。除非显卡出了毛病,否则这段空间总是可以访问的。如果显卡出了毛病怎么办呢?很简单,计算机一定不会通过加电自检过程,这就是传说中的严重错误,计算机是无法启动的,更不要说加载并执行主引导扇区的转载 2015-11-18 22:10:50 · 957 阅读 · 0 评论 -
C语言函数堆栈的思考
源于一段课程案例的代码,拿编译器编译一下,结果不对,反复查了一下,无意中把结果改出来了,于是修改代码探索原因。虽然还有一些地方不太明确的,先总结一笔。 源码是这样的: 0102030405060708091011121314151转载 2015-11-24 19:08:25 · 505 阅读 · 0 评论 -
全局内存
大内高手—全局内存 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:李先静 更新时间:2007-7-9有人可能会说,全局内存就是全局变量嘛,有必要专门一章来介绍吗?这么简单的东西,还能玩出花来?我从来没有深究它,不一样写程序吗?关于全局内存这个主题虽然玩不出花来,但确实有些重要,了解这些知识,对于优化程转载 2015-11-24 19:30:57 · 421 阅读 · 0 评论 -
GCC常用命令详解
GCC(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。穿插一个玩笑: GNU意思是GNU’s not Unix而非角马。然而GNU还是一个未拆转载 2015-12-12 23:10:42 · 926 阅读 · 0 评论 -
堆和栈的区别
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2015-11-24 19:06:49 · 273 阅读 · 0 评论 -
指针内存分配
eturn语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。char * Func(void){char str[] = "hellow world"; // str的内存位于栈上 return str; // 将导致错误}void Test4(void){char *str = NULL;转载 2015-11-24 19:05:00 · 392 阅读 · 0 评论 -
nodepad++ 配置gcc
1.首先必须有gcc和g++ ,如果安装了cygwin就都ok了2.下载notepad++,这个版本可用:http://www.xiazaiba.com/html/186.html3.下载并解压 FunctionList_2_1_UNI_dll.zip。 将 FunctionList.dll 复制到Notepad++ 的 plugins 目录下。 将C++.flb、转载 2015-12-12 23:06:08 · 1275 阅读 · 0 评论 -
Linux GCC常用命令
Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年转载 2015-12-12 23:11:34 · 279 阅读 · 0 评论 -
共享内存与线程局部存储
大内高手—共享内存与线程局部存储 城里的人想出去,城外的人想进来。这是《围城》里的一句话,它可能比《围城》本身更加有名。我想这句话的前提是,要么住在城里,要么住在城外,二者只能居其一。否则想住在城里就可以住在城里,想住在城外就可以住在城外,你大可以选择单日住在城里,双日住在城外,也就没有心思去想出去还是进来了。理想情况是即可以住在城里又可以住在城外,而不是走向极端。尽管像青转载 2015-11-24 19:29:37 · 2222 阅读 · 0 评论 -
extern "C"的使用要点
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 这个功能十分有用处转载 2015-12-13 21:47:00 · 352 阅读 · 0 评论 -
C语言左值和右值,以及操作符属性总结
《C和指针》这本书上讲到左值和右值,概念有点含糊据我自己的理解:左值:标识的应该是个存储位置,内存中的位置,左值可以是个变量名,或者是个表达式,但表达式必须表示的是个内存位置右值:就是个值,变量的值,表达式的值操作符的属性有3个因素:操作符的优先级,操作符的结合性,操作符是否控制执行顺序。操作符的优先级:决定含有多个操作符的表达式的求值顺序,每个操作的优先级不同转载 2015-11-27 19:04:01 · 571 阅读 · 0 评论 -
gcc 内联asm
1.基本的内联汇编1)asm格式 http://blog.youkuaiyun.com/guzhou_diaoke/article/details/8393548GNU的C编译器使用asm关键字指出使用汇编语言编写的源代码段落。基本格式:asm("assembly code");括号中的汇编格式:指令必须在引号里;指令超过一条,必须使用新行字符分隔。如:[cpp] vi原创 2015-12-02 22:19:12 · 5111 阅读 · 0 评论 -
c语言变量名称与变量
c语言变量名称与变量 0x00030 , 0x00031 ,0x00032 ,0x00033 是四个字节,用来存放0x00010(字母a的地址) 好文要顶 关注我 收藏该文转载 2015-12-02 22:46:37 · 910 阅读 · 0 评论 -
memcpy与memmove区别
头文件:#include memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, size_t num);memmove() 与 memcpy() 类似都是用来复制 src 所指的内存内容前 num 个字节到 dest 所指的地址上。不同的是,memmove() 更为灵活,当src 和 de转载 2015-12-02 22:47:53 · 355 阅读 · 0 评论 -
printf_系统调用过程分析_write() putc() 函数实现
printf_系统调用过程分析_write() putc() 函数实现 系统调用”是操作系统提供给用户程序进行调用的一些服务。这些服务是系统预先提供的函数,在这一点上系统调用与普通的用户程序是没有区别的。而区别则在于“系统调用”是由操作系统提供给用户的,这些服务更接近底层或者要求的安全性更高,因此由操作系统来统一实现和管理。 程序员在写程序的过程中会经常需转载 2015-12-02 22:50:12 · 732 阅读 · 0 评论 -
C Inline asm
1: 插入到 C 代码中的汇编语句是以":"分隔的2:限定符意义"m"、"v"、"o"内存单元"r"任何寄存器"q"寄存器eax、ebx、ecx、edx之一"i"、"h"直接操作数"E"和"F"浮点数"g"任意原创 2015-12-03 21:27:47 · 772 阅读 · 0 评论 -
Linux 汇编语言(GNU GAS汇编)开发指南
用汇编编写的程序虽然运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,或许更好的办法是将汇编指令嵌入到 C 语言程序中,从而充分利用高级语言和汇编语言各自的特点。但一般来讲,在 C 代码中嵌入汇编语句要比"纯粹"的汇编语言代码复杂得多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。 GCC 提供了很好的内联汇编支持转载 2015-12-02 22:30:17 · 3246 阅读 · 0 评论 -
c malloc分配内存
c malloc分配内存 php中的内存分配有用类似emalloc这样的函数,emalloc实际上是C语言中的malloc的一层封装,php启动后,会向OS申请一块内存,可以理解为内存池,以后的php分配内存都是在这块内存池中进行的,以至于efree,也不会向OS退回内存,而只是设置标志位,标识efree这块内存不再使用了,这样做的好处是,速度快,避免系统调用,因为转载 2015-12-02 22:38:50 · 410 阅读 · 0 评论 -
C语言中的位拷贝与值拷贝浅谈(转载)
注:C语言实现的PHP变量的赋值过程中,就涉及到了 深拷贝和浅拷贝 位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。 位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不转载 2015-12-02 22:45:29 · 510 阅读 · 0 评论 -
“浅拷贝”与“深拷贝”
“浅拷贝”与“深拷贝” C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制:(1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:[cpp] view plaincopyclass Rect { private: int width;转载 2015-12-02 22:44:34 · 251 阅读 · 0 评论 -
汇编语言---GCC内联汇编
GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是"GCC Inline ASM"(GCC内联汇编);一、基本内联汇编GCC中基本的内联汇编非常易懂,格式如下:__asm__ [__volatile__] ("instruction list");其中,1.__asm__:它是GCC定义的关键字asm的宏定义(#define __asm__ asm),它用来声明一个转载 2015-12-02 22:28:51 · 1048 阅读 · 0 评论 -
GCC 内联汇编
来源:IBM用汇编编写的程序虽然运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,或许更好的办法是将汇编指令嵌入到 C 语言程序中,从而充分利用高级语言和汇编语言各自的特点。但一般来讲,在 C 代码中嵌入汇编语句要比"纯粹"的汇编语言代码复杂得多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。 GCC 提供转载 2015-12-02 22:32:29 · 1198 阅读 · 0 评论 -
汇编语言---函数调用栈
汇编语言---函数调用栈当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地址当成返回地址压入栈中(这个压栈操作隐含在call指令中);3、在被调函数中,被调函数会转载 2015-12-02 22:33:12 · 2005 阅读 · 0 评论