Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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
 ×îÐÂÎÄÕ : c

C ÖÐtypedefµÄһЩʹÓÃ

1. »ù±¾½âÊÍ
¡¡¡¡typedefΪCÓïÑԵĹؼü×Ö£¬×÷ÓÃÊÇΪһÖÖÊý¾ÝÀàÐͶ¨ÒåÒ»¸öÐÂÃû×Ö¡£ÕâÀïµÄÊý¾ÝÀàÐͰüÀ¨ÄÚ²¿Êý¾ÝÀàÐÍ£¨int,charµÈ£©ºÍ×Ô¶¨ÒåµÄÊý¾ÝÀàÐÍ£¨structµÈ£©¡£
¡¡¡¡ÔÚ±à³ÌÖÐʹÓÃtypedefÄ¿µÄÒ»°ãÓÐÁ½¸ö£¬Ò»¸öÊǸø±äÁ¿Ò»¸öÒ×¼ÇÇÒÒâÒåÃ÷È·µÄÐÂÃû×Ö£¬ÁíÒ»¸öÊǼò»¯Ò»Ð©±È½Ï¸´ÔÓµÄÀàÐÍÉùÃ÷¡£
¡¡¡¡ÖÁÓÚtypedefÓÐʲô΢ÃîÖ®´¦£¬ÇëÄã½Ó×Å¿´ÏÂÃæ¶Ô¼¸¸öÎÊÌâµÄ¾ßÌå²ûÊö¡£
¡¡2. typedef & ½á¹¹µÄÎÊÌâ
¡¡¡¡µ±ÓÃÏÂÃæµÄ´úÂ붨ÒåÒ»¸ö½á¹¹Ê±£¬±àÒëÆ÷±¨ÁËÒ»¸ö´íÎó£¬ÎªÊ²Ã´ÄØ£¿Äª·ÇCÓïÑÔ²»ÔÊÐíÔڽṹÖаüº¬Ö¸ÏòËü×Ô¼ºµÄÖ¸ÕëÂð£¿ÇëÄãÏȲÂÏëһϣ¬È»ºó¿´ÏÂÎÄ˵Ã÷£º
typedef struct tagNode
{
¡¡char *pItem;
¡¡pNode pNext;
} *pNode;
¡¡¡¡´ð°¸Óë·ÖÎö£º
¡¡¡¡1¡¢typedefµÄ×î¼òµ¥Ê¹ÓÃ
typedef long byte_4;
¡¡¡¡¸øÒÑÖªÊý¾ÝÀàÐÍlongÆð¸öÐÂÃû×Ö£¬½Ðbyte_4¡£
¡¡¡¡2¡¢ typedefÓë½á¹¹½áºÏʹÓÃ
typedef struct tagMyStruct
{
¡¡int iNum;
¡¡long lLength;
} MyStruct;
¡¡¡¡ÕâÓï¾äʵ¼ÊÉÏÍê³ÉÁ½¸ö²Ù×÷£º
¡¡¡¡1) ¶¨ÒåÒ»¸öеĽṹÀàÐÍ
struct tagMyStruct
{
¡¡int iNum;
¡¡long lLength;
};
¡¡¡¡·ÖÎö£ºtagMyStruct³ÆÎª“tag”£¬¼´“±êÇ©”£¬Êµ¼ÊÉ ......

C±ê×¼¿âÔ´Âë½âÆÊ(13)£ºÊäÈëÊä³öº¯Êýstdio.h

    C±ê×¼ÖеÄI/O¿âÊÇÒ»¸ö±È½ÏÅÓ´óµÄ¿â£¬ÊµÏÖÒ²±È½Ï¸´ÔÓ¡£ÏÔÈ»I/O¿âµÄʵÏÖÊÇÒÀÀµÓÚ²Ù×÷ϵͳµÄ£¬²»Í¬µÄϵͳÉÏI/O¿âµÄʵÏÖ»úÀíÊDz»Ò»ÑùµÄ¡£glibcÖУ¬I/O¿âµÄºËÐÄʵÏÖÔÚlibioĿ¼Ï¡£ÓÐ4¸öÍ·Îļþlibio.h, iolibio.h, libioP.h, strfile.h, stdio.h£¬ÆäÖÐstdio.hÊǵ¼³öµÄ±ê×¼CÍ·Îļþ£¬ÆäÓà¶¼ÊÇÄÚ²¿ÊµÏÖ¡£ÕâÀï²¢²»´òËã½âÆÊÕû¸öI/O¿âµÄÔ´´úÂ루ÄÇÑù¿ÉÄÜÒ»±¾ÊéҲ˵²»Í꣩£¬Ö»ÊǸÅÊöÐԵĽéÉÜÒ»ÏÂËüµÄÂÖÀªºÍËùÓбê×¼½Ó¿ÚµÄ¹¦ÄÜ¡£ÎÒÃÇѧϰI/O¿âÒ²ÊÇΪÁËÄÜÔÚʵ¼ùÖÐÓ¦ÓÃËü£¬Òò´ËÒò´Ë¶ÔC±ê×¼ÖÐËùÓеÄI/O½Ó¿ÚÒªÓиöÈ«ÃæµÄÁ˽⡣
    ÊäÈë/Êä³öº¯ÊýÖ÷ÒªÔÚstdio.hÖУ¬¶ÔÓ¦µÄ¿í×Ö·û°æ±¾ÔÚwchar.hÖУ¬ÏÂÃæÁгö±ê×¼CÖж¨ÒåµÄËùÓнӿڣº
    1¡¢Ïà¹ØÀàÐͺͳ£Á¿£ºFILE¡¢EOFÔÚstdio.hÖУ»wchar_t¡¢wint_t¡¢WEOF¡¢WCHAR_MAX¡¢WCHAR _MINµÈÔÚwchar.hÖж¨Òå¡£size_tºÍNULLÔÚstdio.h, wchar.hºÍstddef.h¾ù»á¶¨Ò壬ͬʱʹÓÃÆäÖеĶà¸öÍ·ÎļþÊÇÎÞº¦µÄ¡£
    2¡¢fopen,fclose,fflush,frepoen,fwide,FOPEN_MAX,FILENAME_MAX£º´ò¿ªÎļþ²¢·µ»ØÊý¾ÝÁ÷¡¢¹Ø±ÕÎļþ¡¢Çå¿ÕÊý¾ÝÁ÷µÄ»º³åÇø¡¢½«ÎļþÖØÐ¹ØÁªµ½Ò»¸öÊý¾ÝÁ÷¡¢fwideÔÚwchar.hÖÐÓÃÓÚÉèÖÃÓë² ......

c/c++Îļþ¶Áд²Ù×÷×ܽá

ÔÚ±à³ÌµÄ¹ý³ÌÖУ¬ÎļþµÄ²Ù×÷ÊÇÒ»¸ö¾­³£Óõ½µÄÎÊÌ⣬ÔÚC++BuilderÖУ¬¿ÉÒÔʹÓöàÖÖ·½·¨¶ÔÎļþ²Ù×÷£¬ÏÂÃæÎҾͰ´ÒÔϼ¸¸ö²¿·Ö¶Ô´Ë×÷Ïêϸ½éÉÜ£¬¾ÍÊÇ£º
 
1¡¢»ùÓÚCµÄÎļþ²Ù×÷£»
2¡¢»ùÓÚC++µÄÎļþ²Ù×÷£»
3¡¢»ùÓÚWINAPIµÄÎļþ²Ù×÷£»
4¡¢»ùÓÚBCB¿âµÄÎļþ²Ù×÷£»
5¡¢ÌØÊâÎļþµÄ²Ù×÷¡£
¡¡
Ò¼¡¢»ùÓÚCµÄÎļþ²Ù×÷
¡¡¡¡ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷£¬ÏÂÃæ¾Í·Ö±ð½éÉÜÖ®¡£
Ò»¡¢Á÷ʽÎļþ²Ù×÷
¡¡¡¡ÕâÖÖ·½Ê½µÄÎļþ²Ù×÷ÓÐÒ»¸öÖØÒªµÄ½á¹¹FILE£¬FILEÔÚstdio.hÖж¨ÒåÈçÏ£º
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
¡¡¡¡FILEÕâ¸ö½á¹¹°üº¬ÁËÎļþ²Ù×÷µÄ»ù±¾ÊôÐÔ£¬¶ÔÎļþµÄ²Ù×÷¶¼ÒªÍ¨¹ý ......

c/c++Îļþ¶Áд²Ù×÷×ܽá

ÔÚ±à³ÌµÄ¹ý³ÌÖУ¬ÎļþµÄ²Ù×÷ÊÇÒ»¸ö¾­³£Óõ½µÄÎÊÌ⣬ÔÚC++BuilderÖУ¬¿ÉÒÔʹÓöàÖÖ·½·¨¶ÔÎļþ²Ù×÷£¬ÏÂÃæÎҾͰ´ÒÔϼ¸¸ö²¿·Ö¶Ô´Ë×÷Ïêϸ½éÉÜ£¬¾ÍÊÇ£º
 
1¡¢»ùÓÚCµÄÎļþ²Ù×÷£»
2¡¢»ùÓÚC++µÄÎļþ²Ù×÷£»
3¡¢»ùÓÚWINAPIµÄÎļþ²Ù×÷£»
4¡¢»ùÓÚBCB¿âµÄÎļþ²Ù×÷£»
5¡¢ÌØÊâÎļþµÄ²Ù×÷¡£
¡¡
Ò¼¡¢»ùÓÚCµÄÎļþ²Ù×÷
¡¡¡¡ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷£¬ÏÂÃæ¾Í·Ö±ð½éÉÜÖ®¡£
Ò»¡¢Á÷ʽÎļþ²Ù×÷
¡¡¡¡ÕâÖÖ·½Ê½µÄÎļþ²Ù×÷ÓÐÒ»¸öÖØÒªµÄ½á¹¹FILE£¬FILEÔÚstdio.hÖж¨ÒåÈçÏ£º
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
¡¡¡¡FILEÕâ¸ö½á¹¹°üº¬ÁËÎļþ²Ù×÷µÄ»ù±¾ÊôÐÔ£¬¶ÔÎļþµÄ²Ù×÷¶¼ÒªÍ¨¹ý ......

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²
¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ±¾½Ú½«½éÉÜÈçºÎʹÓà GCC ºÍһЩ
GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
ʹÓà GCC
ͨ³£ºó¸úһЩѡÏîºÍÎļþÃûÀ´Ê¹Óà GCC ±àÒëÆ÷. gcc ÃüÁîµÄ»ù±¾Ó÷¨ÈçÏÂ:
gcc [options] [filenames]
ÃüÁîÐÐÑ¡ÏîÖ¸¶¨µÄ²Ù×÷½«ÔÚÃüÁîÐÐÉÏÿ¸ö¸ø³öµÄÎļþÉÏÖ´ÐÐ. ÏÂһС½Ú½«ÐðÊöһЩÄã»á×î
³£Óõ½µÄÑ¡Ïî.
GCC Ñ¡Ïî
GCC Óг¬¹ý100¸öµÄ±àÒëÑ¡Ïî¿ÉÓÃ. ÕâЩѡÏîÖеÄÐí¶àÄã¿ÉÄÜÓÀÔ¶¶¼²»»áÓõ½, µ«Ò»Ð©Ö÷
ÒªµÄÑ¡Ï»áƵ·±Óõ½. ºÜ¶àµÄ GCC Ñ¡Ïî°üÀ¨Ò»¸öÒÔÉϵÄ×Ö·û. Òò´ËÄã±ØÐëΪÿ¸öÑ¡Ïî
Ö¸¶¨¸÷×ÔµÄÁ¬×Ö·û, ²¢ÇÒ¾ÍÏó´ó¶àÊý Linux ÃüÁîÒ»ÑùÄã²»ÄÜÔÚÒ»¸öµ¥¶ÀµÄÁ¬×Ö·ûºó¸úÒ»
×éÑ¡Ïî. ÀýÈç, ÏÂÃæµÄÁ½¸öÃüÁîÊDz»Í¬µÄ:
gcc -p -g test.c
gcc -pg test.c
µÚÒ»ÌõÃüÁî¸ ......

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²
¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ±¾½Ú½«½éÉÜÈçºÎʹÓà GCC ºÍһЩ
GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
ʹÓà GCC
ͨ³£ºó¸úһЩѡÏîºÍÎļþÃûÀ´Ê¹Óà GCC ±àÒëÆ÷. gcc ÃüÁîµÄ»ù±¾Ó÷¨ÈçÏÂ:
gcc [options] [filenames]
ÃüÁîÐÐÑ¡ÏîÖ¸¶¨µÄ²Ù×÷½«ÔÚÃüÁîÐÐÉÏÿ¸ö¸ø³öµÄÎļþÉÏÖ´ÐÐ. ÏÂһС½Ú½«ÐðÊöһЩÄã»á×î
³£Óõ½µÄÑ¡Ïî.
GCC Ñ¡Ïî
GCC Óг¬¹ý100¸öµÄ±àÒëÑ¡Ïî¿ÉÓÃ. ÕâЩѡÏîÖеÄÐí¶àÄã¿ÉÄÜÓÀÔ¶¶¼²»»áÓõ½, µ«Ò»Ð©Ö÷
ÒªµÄÑ¡Ï»áƵ·±Óõ½. ºÜ¶àµÄ GCC Ñ¡Ïî°üÀ¨Ò»¸öÒÔÉϵÄ×Ö·û. Òò´ËÄã±ØÐëΪÿ¸öÑ¡Ïî
Ö¸¶¨¸÷×ÔµÄÁ¬×Ö·û, ²¢ÇÒ¾ÍÏó´ó¶àÊý Linux ÃüÁîÒ»ÑùÄã²»ÄÜÔÚÒ»¸öµ¥¶ÀµÄÁ¬×Ö·ûºó¸úÒ»
×éÑ¡Ïî. ÀýÈç, ÏÂÃæµÄÁ½¸öÃüÁîÊDz»Í¬µÄ:
gcc -p -g test.c
gcc -pg test.c
µÚÒ»ÌõÃüÁî¸ ......

Boost Python ʵÏÖCµ÷ÓÃpython´íÎó½â¾ö·½·¨

ÓÉÓÚBoost Python¸ú²»ÉÏPython°æ±¾¸üУ¬ÈçÏ·½·¨µ÷ÓÿÉÄܲúÉúTypeError: 'NoneType' object does not support item assignmentÒì³£¡£
Boost PythonÎĵµÖÐÀý×Ó¿ÉÄܲúÉúÒì³£¡£
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
   object result = exec("result = 5 + 5",main_dict);
   int five_squared = extract<int>(main_dict["result"]);
   cout<<"extract value : "<<five_squared<<endl;
   cin>>ij;
}
    catch(error_already_set){
        PyErr_Print();
        cin>>ij;
    }
¿ÉÒÔÈçÏ·½·¨½â¾ö
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
    handle<> ignored((PyRun_String(
        "result = 5 ** 2"
     & ......

Boost Python ʵÏÖCµ÷ÓÃpython´íÎó½â¾ö·½·¨

ÓÉÓÚBoost Python¸ú²»ÉÏPython°æ±¾¸üУ¬ÈçÏ·½·¨µ÷ÓÿÉÄܲúÉúTypeError: 'NoneType' object does not support item assignmentÒì³£¡£
Boost PythonÎĵµÖÐÀý×Ó¿ÉÄܲúÉúÒì³£¡£
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
   object result = exec("result = 5 + 5",main_dict);
   int five_squared = extract<int>(main_dict["result"]);
   cout<<"extract value : "<<five_squared<<endl;
   cin>>ij;
}
    catch(error_already_set){
        PyErr_Print();
        cin>>ij;
    }
¿ÉÒÔÈçÏ·½·¨½â¾ö
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
    handle<> ignored((PyRun_String(
        "result = 5 ** 2"
     & ......

javaµ÷ÓÃC/C++дµÄdll

JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
    ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢  JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°­ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......

javaµ÷ÓÃC/C++дµÄdll

JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
    ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢  JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°­ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......

javaµ÷ÓÃC/C++дµÄdll

JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
    ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢  JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°­ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......
×ܼǼÊý:2015; ×ÜÒ³Êý:336; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [278] [279] [280] [281] 282 [283] [284] [285] [286] [287]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ