1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C
ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis
Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾ÉíÖØÐ´ÁË 90% ÒÔÉ쵀 UNIX
ϵͳº¯Êý£¬²¢ÇÒ°ÑÆäÖÐ×î³£ÓõIJ¿·Ö¶ÀÁ¢³öÀ´£¬ÐγÉÍ·ÎļþºÍ¶ÔÓ¦µÄ LIBRARY£¬C run-time library ¾ÍÊÇÕâÑùÐγɵġ£
3)
Ëæºó£¬Ëæ×Å C ÓïÑÔµÄÁ÷ÐУ¬¸÷¸ö C ±àÒëÆ÷µÄÉú²úÉÌ/¸öÌå/ÍÅÌå¶¼×ñÑÀϵĴ«Í³£¬ÔÚ²»Í¬Æ½Ì¨É϶¼ÓÐÏà¶ÔÓ¦µÄ Standard
Library£¬µ«´ó²¿·ÖʵÏÖ¶¼ÊÇÓë¸÷¸öƽ̨Óйصġ£ÓÉÓÚ¸÷¸ö C ±àÒëÆ÷¶Ô C µÄÖ§³ÖºÍÀí½âÓкܶà·ÖÆçºÍ΢ÃîµÄ²î±ð£¬ËùÒÔ¾ÍÓÐÁË ANSI
C£»ANSI C £¨Ö÷¹ÛÒâͼÉÏ£©ÏêϸµÄ¹æ¶¨ÁË C ÓïÑÔ¸÷¸öÒªËØµÄ¾ßÌ庬ÒåºÍ±àÒëÆ÷ʵÏÖÒªÇó£¬Òý½øÁËеĺ¯ÊýÉùÃ÷·½Ê½£¬Í¬Ê±¶©Á¢ÁË Standard
Library µÄ±ê×¼ÐÎʽ¡£ËùÒÔCÔËÐÐʱ¿âÓɱàÒëÆ÷Éú²úÉÌÌṩ¡£ÖÁÓÚÓÉÆäËû³§ÉÌ/¸öÈË/ÍÅÌåÌṩµÄÍ·ÎļþºÍ¿âº¯Êý£¬Ó¦µ±³ÆÎªµÚÈý·½ C
ÔËÐп⣨Third party C run-time libraries£©¡£
4)C run-time
libraryÀïÃæº¬Óгõʼ»¯´úÂ룬»¹ÓдíÎó´ ......
Google Android¿ª·¢²©¿Í½ñÌìÐû²¼£¬¼´ÈÕÆð¿ª·ÅÕë¶ÔAndroidƽ̨µÄÔÉúÈí¼þ¿ª·¢SDKÏÂÔØ¡£ÓÉÓÚÔÚSDKÇ°ÃæÓÖ¼ÓÉÏÁËÔÉú¶þ×Ö£¬¼´Native Development Kit£¬Òò´ËÓÖ±»Google³ÆÎªNDK¡£ÔÚ´Ë֮ǰ£¬Androidƽ̨µÄµÚÈý·½Ó¦ÓóÌÐò¾ùÊÇÒÀ¿¿»ùÓÚJavaµÄDalvikÌØÖÆÐéÄâ»ú½øÐпª·¢µÄ¡£ÔÉú SDKµÄ¹«²¼¿ÉÒÔÈÿª·¢Õ߸ü¼ÓÖ±½ÓµÄ½Ó´¥Androidϵͳ×ÊÔ´£¬²¢Ê¹Óô«Í³µÄC»òC++ÓïÑÔ±àд³ÌÐò£¬²¢ÔÚ³ÌÐò·â°üÎļþ£¨.apks£©ÖÐÖ±½ÓǶÈëÔÉú¿âÎļþ
SDKÏÂÔØ£ºhttp://developer.android.com/sdk/ndk/1.5_r1/index.html
Android×ÜËãÓÐC/C++µÄSDKÁË
Ô±¾ÒòΪAndroidûÓÐC/C++µÄSDK£¬
¶ÔAndroidûʲô¼¤Ç飬
ÏÖÔÚÐËȤÀ´Å¶£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡ ......
Google Android¿ª·¢²©¿Í½ñÌìÐû²¼£¬¼´ÈÕÆð¿ª·ÅÕë¶ÔAndroidƽ̨µÄÔÉúÈí¼þ¿ª·¢SDKÏÂÔØ¡£ÓÉÓÚÔÚSDKÇ°ÃæÓÖ¼ÓÉÏÁËÔÉú¶þ×Ö£¬¼´Native Development Kit£¬Òò´ËÓÖ±»Google³ÆÎªNDK¡£ÔÚ´Ë֮ǰ£¬Androidƽ̨µÄµÚÈý·½Ó¦ÓóÌÐò¾ùÊÇÒÀ¿¿»ùÓÚJavaµÄDalvikÌØÖÆÐéÄâ»ú½øÐпª·¢µÄ¡£ÔÉú SDKµÄ¹«²¼¿ÉÒÔÈÿª·¢Õ߸ü¼ÓÖ±½ÓµÄ½Ó´¥Androidϵͳ×ÊÔ´£¬²¢Ê¹Óô«Í³µÄC»òC++ÓïÑÔ±àд³ÌÐò£¬²¢ÔÚ³ÌÐò·â°üÎļþ£¨.apks£©ÖÐÖ±½ÓǶÈëÔÉú¿âÎļþ
SDKÏÂÔØ£ºhttp://developer.android.com/sdk/ndk/1.5_r1/index.html
Android×ÜËãÓÐC/C++µÄSDKÁË
Ô±¾ÒòΪAndroidûÓÐC/C++µÄSDK£¬
¶ÔAndroidûʲô¼¤Ç飬
ÏÖÔÚÐËȤÀ´Å¶£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡ ......
Google Android¿ª·¢²©¿Í½ñÌìÐû²¼£¬¼´ÈÕÆð¿ª·ÅÕë¶ÔAndroidƽ̨µÄÔÉúÈí¼þ¿ª·¢SDKÏÂÔØ¡£ÓÉÓÚÔÚSDKÇ°ÃæÓÖ¼ÓÉÏÁËÔÉú¶þ×Ö£¬¼´Native Development Kit£¬Òò´ËÓÖ±»Google³ÆÎªNDK¡£ÔÚ´Ë֮ǰ£¬Androidƽ̨µÄµÚÈý·½Ó¦ÓóÌÐò¾ùÊÇÒÀ¿¿»ùÓÚJavaµÄDalvikÌØÖÆÐéÄâ»ú½øÐпª·¢µÄ¡£ÔÉú SDKµÄ¹«²¼¿ÉÒÔÈÿª·¢Õ߸ü¼ÓÖ±½ÓµÄ½Ó´¥Androidϵͳ×ÊÔ´£¬²¢Ê¹Óô«Í³µÄC»òC++ÓïÑÔ±àд³ÌÐò£¬²¢ÔÚ³ÌÐò·â°üÎļþ£¨.apks£©ÖÐÖ±½ÓǶÈëÔÉú¿âÎļþ
SDKÏÂÔØ£ºhttp://developer.android.com/sdk/ndk/1.5_r1/index.html
Android×ÜËãÓÐC/C++µÄSDKÁË
Ô±¾ÒòΪAndroidûÓÐC/C++µÄSDK£¬
¶ÔAndroidûʲô¼¤Ç飬
ÏÖÔÚÐËȤÀ´Å¶£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡ ......
Google Android¿ª·¢²©¿Í½ñÌìÐû²¼£¬¼´ÈÕÆð¿ª·ÅÕë¶ÔAndroidƽ̨µÄÔÉúÈí¼þ¿ª·¢SDKÏÂÔØ¡£ÓÉÓÚÔÚSDKÇ°ÃæÓÖ¼ÓÉÏÁËÔÉú¶þ×Ö£¬¼´Native Development Kit£¬Òò´ËÓÖ±»Google³ÆÎªNDK¡£ÔÚ´Ë֮ǰ£¬Androidƽ̨µÄµÚÈý·½Ó¦ÓóÌÐò¾ùÊÇÒÀ¿¿»ùÓÚJavaµÄDalvikÌØÖÆÐéÄâ»ú½øÐпª·¢µÄ¡£ÔÉú SDKµÄ¹«²¼¿ÉÒÔÈÿª·¢Õ߸ü¼ÓÖ±½ÓµÄ½Ó´¥Androidϵͳ×ÊÔ´£¬²¢Ê¹Óô«Í³µÄC»òC++ÓïÑÔ±àд³ÌÐò£¬²¢ÔÚ³ÌÐò·â°üÎļþ£¨.apks£©ÖÐÖ±½ÓǶÈëÔÉú¿âÎļþ
SDKÏÂÔØ£ºhttp://developer.android.com/sdk/ndk/1.5_r1/index.html
Android×ÜËãÓÐC/C++µÄSDKÁË
Ô±¾ÒòΪAndroidûÓÐC/C++µÄSDK£¬
¶ÔAndroidûʲô¼¤Ç飬
ÏÖÔÚÐËȤÀ´Å¶£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡ ......
JNIµ÷ÓÿÉÒÔ¼Ó¿ìJAVAµÄÔËÐÐËÙ¶È£¬Ö÷ÒªÊǽ«¹Ø¼üµÄ´úÂëÓÃC/C++ »òÕßmfcÍê³É£¬ÔÚÕâÀïÌùÉÏÎÒдµÄÒ»¶Î´úÂ룬ÓÐÐËȤµÄ¿ÉÒԲο¼£º
Í·Îļþ£º
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class cn_com_wintone_TLConnectJNI */
#ifndef _Included_cn_com_wintone_TLConnectJNI
#define _Included_cn_com_wintone_TLConnectJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: cn_com_wintone_TLConnectJNI
* Method: Prt
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_cn_com_wintone_TLConnectJNI_Prt
(JNIEnv *, jobject);
JNIEXPORT jboolean JNICALL Java_cn_com_wintone_TLConnectJNI_initOCRTL
(JNIEnv *envPram, jobject);
/*
* Class: cn_com_wintone_TLConnectJNI
* Method: uninitOCRTL
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_cn_com_wintone_TLConnectJNI_uninitOCRTL
(JNIEnv *envPram, jobject);
/*
......
JNIµ÷ÓÿÉÒÔ¼Ó¿ìJAVAµÄÔËÐÐËÙ¶È£¬Ö÷ÒªÊǽ«¹Ø¼üµÄ´úÂëÓÃC/C++ »òÕßmfcÍê³É£¬ÔÚÕâÀïÌùÉÏÎÒдµÄÒ»¶Î´úÂ룬ÓÐÐËȤµÄ¿ÉÒԲο¼£º
Í·Îļþ£º
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class cn_com_wintone_TLConnectJNI */
#ifndef _Included_cn_com_wintone_TLConnectJNI
#define _Included_cn_com_wintone_TLConnectJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: cn_com_wintone_TLConnectJNI
* Method: Prt
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_cn_com_wintone_TLConnectJNI_Prt
(JNIEnv *, jobject);
JNIEXPORT jboolean JNICALL Java_cn_com_wintone_TLConnectJNI_initOCRTL
(JNIEnv *envPram, jobject);
/*
* Class: cn_com_wintone_TLConnectJNI
* Method: uninitOCRTL
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_cn_com_wintone_TLConnectJNI_uninitOCRTL
(JNIEnv *envPram, jobject);
/*
......
Ò».»·¾³µÄ°²×°
ÏÂÔØ°²×°°ü£¬GoogleÉÏËÑË÷php+apache+sqlµÄ°²×°°ü²¢°²×°¡£
¶þ.À©Õ¹±à³Ì
Õë¶ÔÔÚPHP»·¾³ÏµôÓÃC±à³Ì(c³ÌÐò±àÒëµÄdll)£¬Ö÷ÒªÓÐÒÔÏÂÁ½ÖÖ·½Ê½¡£
1.ÀûÓÃATL¹¹½¨DLL×é¼þ£¬È»ºóÔÙPHPÀïÃæÖ±½Óµ÷Ó㬵÷Ó÷½·¨Îª
<?php
$com = new COM("atltest.Fun") or die("ÎÞ·¨½¨Á¢COM×é¼þ");
echo $com->show(2);
?>
2.°´ÕÕlinuxϵķ½Ê½À´µ÷ÓÃc³ÌÐòдµÄdll¡£
ÕâÖÖ·½Ê½Ö÷Òª²½ÖèΪ£º
(1).ÔÚlinuxÏÂÓÃphpÉú³É¹¤³ÌÎļþ£¬È»ºó¿½±´µ½windows,(ΪʲôÕâÑù×ö£¬ÒòΪwindowsÏÂphpûÓÐÀ©Õ¹±à³Ì)
(2).ÔÚwindows϶Ôphp¹¤³ÌÎļþµÄphp_xxx.hºÍxxx.c±à¼,Ìí¼ÓÀ©Õ¹µÄº¯Êý(·½·¨),È»ºó±àÒë,Éú³ÉÀ©Õ¹DLL.
(3).°ÑÉú³ÉµÄDLL¿½±´µ½phpµÄÀ©Õ¹µ÷Ó÷¾¶ÀïÃæ£¬ÔÙÔÚphp.iniÀïÃæÌí¼ÓÉú³ÉµÄDLLÖ§³Ö¡£
(4).× ......
Ò».»·¾³µÄ°²×°
ÏÂÔØ°²×°°ü£¬GoogleÉÏËÑË÷php+apache+sqlµÄ°²×°°ü²¢°²×°¡£
¶þ.À©Õ¹±à³Ì
Õë¶ÔÔÚPHP»·¾³ÏµôÓÃC±à³Ì(c³ÌÐò±àÒëµÄdll)£¬Ö÷ÒªÓÐÒÔÏÂÁ½ÖÖ·½Ê½¡£
1.ÀûÓÃATL¹¹½¨DLL×é¼þ£¬È»ºóÔÙPHPÀïÃæÖ±½Óµ÷Ó㬵÷Ó÷½·¨Îª
<?php
$com = new COM("atltest.Fun") or die("ÎÞ·¨½¨Á¢COM×é¼þ");
echo $com->show(2);
?>
2.°´ÕÕlinuxϵķ½Ê½À´µ÷ÓÃc³ÌÐòдµÄdll¡£
ÕâÖÖ·½Ê½Ö÷Òª²½ÖèΪ£º
(1).ÔÚlinuxÏÂÓÃphpÉú³É¹¤³ÌÎļþ£¬È»ºó¿½±´µ½windows,(ΪʲôÕâÑù×ö£¬ÒòΪwindowsÏÂphpûÓÐÀ©Õ¹±à³Ì)
(2).ÔÚwindows϶Ôphp¹¤³ÌÎļþµÄphp_xxx.hºÍxxx.c±à¼,Ìí¼ÓÀ©Õ¹µÄº¯Êý(·½·¨),È»ºó±àÒë,Éú³ÉÀ©Õ¹DLL.
(3).°ÑÉú³ÉµÄDLL¿½±´µ½phpµÄÀ©Õ¹µ÷Ó÷¾¶ÀïÃæ£¬ÔÙÔÚphp.iniÀïÃæÌí¼ÓÉú³ÉµÄDLLÖ§³Ö¡£
(4).× ......
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
FILE *fp, *fp2;
char buf[1024*300];
fp = fopen("in.txt", "rb");
fp2 = fopen("out.txt", "wb+");
fseek(fp, 0, SEEK_END);
int iLen = ftell(fp);
cout<<"iLen: "<<iLen<<endl;
fseek(fp, 0, SEEK_SET);
fread(buf, 1, iLen, fp);
fwrite(buf, 1, iLen, fp2);
fclose(fp);
fclose(fp2);
return 0;
} ......
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
FILE *fp, *fp2;
char buf[1024*300];
fp = fopen("in.txt", "rb");
fp2 = fopen("out.txt", "wb+");
fseek(fp, 0, SEEK_END);
int iLen = ftell(fp);
cout<<"iLen: "<<iLen<<endl;
fseek(fp, 0, SEEK_SET);
fread(buf, 1, iLen, fp);
fwrite(buf, 1, iLen, fp2);
fclose(fp);
fclose(fp2);
return 0;
} ......