易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

extern "C"

extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。
  (1) 被extern "C"限定的函数或变量是extern类型的;
  extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句:
  extern int a;
  仅仅是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。
  通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数。
  与extern对应的关键字是static,被它修饰的全局变量和函数只能在本模块中使用。因此,一个函数或变量只可能被本模块使用时,其不可能被extern “C”修饰。
  ......

在Eclipse中开发C/C++项目 转帖


C/C++ development with the Eclipse Platform
Pawel Leszek
 
摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识。虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持。在这篇文章里,你将学会如何使用CDT(C/C++ Development Toolkit),一个在Eclipse平台上最适用的C/C++工具包。
 
C/C++语言是世界上最流行的程序开发语言,所以Eclipse提供对C/C++语言的支持也就不足为奇了。由于Eclipse只是为开发工具提供一个框架,所以它必须借助外部插件的形式实现对C/C++语言的间接支持。这篇文章告诉你如何使用CDT,一个用于Eclipse平台的C/C++开发的插件组。CDT项目(见本文后面的Resource部分)的目标是为Eclipse平台提供一个完全意义上的C/C++集成开发环境。虽然整个项目专注于Linux平台,但实际上,在那些提供了GNU开发工具的平台上,CDT都可以运行得很好,包括Win32(Win 95/98/Me/NT/2000/XP),QNX Neutrino和Solaris平台等。
CDT是一个开源项目(基于CPL),纯粹由Java语言实现。这些插件在Eclipse工作区中添加了一个C/C++开发视角,包括一系列的视图(Views)和向导(Wizards),以及一些高级的编辑和调试支持等, ......

在Eclipse中开发C/C++项目 转帖


C/C++ development with the Eclipse Platform
Pawel Leszek
 
摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识。虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持。在这篇文章里,你将学会如何使用CDT(C/C++ Development Toolkit),一个在Eclipse平台上最适用的C/C++工具包。
 
C/C++语言是世界上最流行的程序开发语言,所以Eclipse提供对C/C++语言的支持也就不足为奇了。由于Eclipse只是为开发工具提供一个框架,所以它必须借助外部插件的形式实现对C/C++语言的间接支持。这篇文章告诉你如何使用CDT,一个用于Eclipse平台的C/C++开发的插件组。CDT项目(见本文后面的Resource部分)的目标是为Eclipse平台提供一个完全意义上的C/C++集成开发环境。虽然整个项目专注于Linux平台,但实际上,在那些提供了GNU开发工具的平台上,CDT都可以运行得很好,包括Win32(Win 95/98/Me/NT/2000/XP),QNX Neutrino和Solaris平台等。
CDT是一个开源项目(基于CPL),纯粹由Java语言实现。这些插件在Eclipse工作区中添加了一个C/C++开发视角,包括一系列的视图(Views)和向导(Wizards),以及一些高级的编辑和调试支持等, ......

C/C++ 宏带来的奇技淫巧

作者:Kevin Lynx 来源:C++博客
转自:http://www.kuqin.com/language/20080319/4797.html
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有
一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),
那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。
关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你
还不知道#和##,也不知道prescan,那么你肯定对宏的了解不够。
我稍微讲解下宏的一些语法问题(说语法问题似乎不妥,macro只与preprocessor有关,跟语义分析又无关):
1. 宏可以像函数一样被定义,例如:
   #define min(x,y) (x<y?x:y) //事实上这个宏存在BUG
   但是在实际使用时,只有当写上min(),必须加括号,min才会被作为宏展开,否则不做任何处理。
  
2. 如果宏需要参数,你可以不传,编译器会给你警告(宏参数不够),但是这会导致错误。如C++书籍中所描
   述的,编译器(预处理器)对宏的语法检查不够,所以更多的检查性工作得你自己来做。
3. 很多程序 ......

C/C++ 宏带来的奇技淫巧

作者:Kevin Lynx 来源:C++博客
转自:http://www.kuqin.com/language/20080319/4797.html
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有
一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),
那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。
关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你
还不知道#和##,也不知道prescan,那么你肯定对宏的了解不够。
我稍微讲解下宏的一些语法问题(说语法问题似乎不妥,macro只与preprocessor有关,跟语义分析又无关):
1. 宏可以像函数一样被定义,例如:
   #define min(x,y) (x<y?x:y) //事实上这个宏存在BUG
   但是在实际使用时,只有当写上min(),必须加括号,min才会被作为宏展开,否则不做任何处理。
  
2. 如果宏需要参数,你可以不传,编译器会给你警告(宏参数不够),但是这会导致错误。如C++书籍中所描
   述的,编译器(预处理器)对宏的语法检查不够,所以更多的检查性工作得你自己来做。
3. 很多程序 ......

C Runtime Library来历, API, MFC, ATL关系

CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以看到CRT的源码,不仅有C的,也有C++的。
       CRT原先的目的就是支持操作系统的运行。因为Windows操作系统除汇编部分外,都是用C/C++编写的,所以内核及许多关键服务都在CRT上运行(它们都采用dll技术动态链接)。此外,用 VC编写的C/C++程序也用到它们(可以动态链接,也可以静态链接,前者运行时需要系统中已安装CRT的dll,后者不需要)。可以说,CRT就是 Microsoft编写Windows时使用的低层类库。然后,它又被当作C++标准库的一个实现包含在了VC系列中;我们在VC中使用的C++标准库,其实就是CRT的一个真子集(少了C++标准所不包含的代码,特别是大量的低层C代码)
       至于CRT与WINDOWS API的关系,与许多人理解的相反,WINDOWS API作为Windows的一部份,是在CRT的基础上开发的。你可以将Windows(及其API)看作一个项目,而这个项目使用的语言是汇编/C/C ++,使用的类库就是CRT。所以,离开CRT,W ......

C++ 调C C调c++

一、c++ 调C:
/* c语言头文件:cExample.h */
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
int add(int x,int y);
#ifdef __cplusplus
}
#endif
 
#endif
/* c语言实现文件:cExample.c */
#include "cExample.h"
int add( int x, int y )
{
 return x + y;
}
// main.cpp
#include <iostream>
using namespace std;
// c++实现文件,调用add()
#include "cExample.h"
 
int main(int argc, char* argv[])
{
 cout << add(2,3) << endl;
 return 0;
}
二、C调C++
//C++头文件 cppExample.h
#ifndef CPP_EXAMPLE_H
#define CPP_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
 int add(int x,int y);
#ifdef __cplusplus
}
#endif
#endif
//C++实现文件 cppExample.cpp
#include "cppExample.h"
int add( int x, int y )
{
return x + y;
}
/* C实现文件 */
#include <stdio.h>
#include "cppExample.h"
int main( int argc, char* argv[] )
{
  printf ("%d\n", add( 2, 3 ));
 return 0;
......

C++ 调C C调c++

一、c++ 调C:
/* c语言头文件:cExample.h */
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
int add(int x,int y);
#ifdef __cplusplus
}
#endif
 
#endif
/* c语言实现文件:cExample.c */
#include "cExample.h"
int add( int x, int y )
{
 return x + y;
}
// main.cpp
#include <iostream>
using namespace std;
// c++实现文件,调用add()
#include "cExample.h"
 
int main(int argc, char* argv[])
{
 cout << add(2,3) << endl;
 return 0;
}
二、C调C++
//C++头文件 cppExample.h
#ifndef CPP_EXAMPLE_H
#define CPP_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
 int add(int x,int y);
#ifdef __cplusplus
}
#endif
#endif
//C++实现文件 cppExample.cpp
#include "cppExample.h"
int add( int x, int y )
{
return x + y;
}
/* C实现文件 */
#include <stdio.h>
#include "cppExample.h"
int main( int argc, char* argv[] )
{
  printf ("%d\n", add( 2, 3 ));
 return 0;
......

ASP的那些东西(一)

客户端脚本:<script language="scriptlanguage"></script>
服务器端脚本:<% ......%>
Vbscript是visual basic的一个子集,虽然限制了可以使用的内置函数的数量,但是也使得他非常小巧,从而提高了可移植性
Variant是vbscript的唯一数据类型,有13种子类型:
Empty,Null,Boolean,Byte,Integer,Currency,Long,Single,Double,Date(Time),String,Object,Error 
规范:<body>外定义变量、函数等等需要事先申明的语句,如果是在几个地方用,就放在:<body>外;如果只在一处用,就放在用的地方
原则:能用request的时候尽量不用session,能用session的时候尽量不用application。
Server.MapPath("/DataBase/xx.mdb")
   带"/"是相对于根目录的绝对路径,即前面加个服务器地址
   不带"/"则是相对于conn.asp文件的相对路径,即前面加个当前程序文件的路径
 
连接Access数据库的代码
conn="driver={Microsoft Access Driver (*.mdb)};DefaultDir=;DBQ="
Connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
连接SQL Server数据库:
ConnectionString = "driver={sql server};server=;uid=;pwd=;d ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [2352] [2353] [2354] [2355] 2356 [2357] [2358] [2359] [2360] [2361]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号