CºÍC++»ìºÏ±à³Ì(__cplusplusʹÓÃ)
µÚÒ»ÖÖÀí½â
±ÈÈç˵ÄãÓÃC++¿ª·¢ÁËÒ»¸öDLL¿â£¬ÎªÁËÄܹ»ÈÃCÓïÑÔÒ²Äܹ»µ÷ÓÃÄãµÄDLLÊä³ö(Export)µÄº¯Êý£¬ÄãÐèÒªÓÃextern "C"À´Ç¿ÖƱàÒëÆ÷²»ÒªÐÞ¸ÄÄãµÄ
º¯ÊýÃû¡£
ͨ³££¬ÔÚCÓïÑÔµÄÍ·ÎļþÖо³£¿ÉÒÔ¿´µ½ÀàËÆÏÂÃæÕâÖÖÐÎʽµÄ´úÂ룺
#ifdef __cplusplus
extern "C" {
#endif
/**** some declaration or so *****/
#ifdef __cplusplus
}
#endif /* end of __cplusplus */
ÄÇô£¬ÕâÖÖд·¨Ê²Ã´ÓÃÄØ£¿Êµ¼ÊÉÏ£¬ÕâÊÇΪÁËÈÃCPPÄܹ»ÓëC½Ó¿Ú¶ø²ÉÓõÄÒ»ÖÖÓï·¨ÐÎʽ¡£Ö®ËùÒÔ²ÉÓÃÕâÖÖ·½Ê½£¬ÊÇÒòΪÁ½ÖÖÓïÑÔÖ®¼äµÄһЩ²î
ÒìËùµ¼Öµġ£ÓÉÓÚCPPÖ§³Ö¶à̬ÐÔ£¬Ò²¾ÍÊǾßÓÐÏàͬº¯ÊýÃûµÄº¯Êý¿ÉÒÔÍê³É²»Í¬µÄ¹¦ÄÜ£¬CPPͨ³£ÊÇͨ¹ý²ÎÊýÇø·Ö¾ßÌåµ÷ÓõÄÊÇÄÄÒ»¸öº¯Êý¡£ÔÚ
±àÒëµÄʱºò£¬CPP±àÒëÆ÷»á½«²ÎÊýÀàÐͺͺ¯ÊýÃûÁ¬½ÓÔÚÒ»Æð£¬ÓÚÊÇÔÚ³ÌÐò±àÒë³ÉΪĿ±êÎļþÒÔºó£¬CPP±àÒëÆ÷¿ÉÒÔÖ±½Ó¸ù¾ÝÄ¿±êÎļþÖеķûºÅÃû
½«¶à¸öÄ¿±êÎļþÁ¬½Ó³ÉÒ»¸öÄ¿±êÎļþ»òÕß¿ÉÖ´ÐÐÎļþ¡£µ«ÊÇÔÚCÓïÑÔÖУ¬ÓÉÓÚÍêȫûÓжà̬ÐԵĸÅÄC±àÒëÆ÷ÔÚ±àÒëʱ³ýÁË»áÔÚº¯ÊýÃûÇ°ÃæÌí
¼ÓÒ»¸öÏ»®ÏßÖ®Í⣬ʲôҲ²»»á×ö£¨ÖÁÉٺܶà±àÒëÆ÷¶¼ÊÇÕâÑù¸ÉµÄ£©¡£ÓÉÓÚÕâÖÖµÄÔÒò£¬µ±²ÉÓÃCPPÓëC»ìºÏ±à³ÌµÄʱºò£¬¾Í¿ÉÄÜ»á³öÎÊÌâ¡£¼Ù
ÉèÔÚijһ¸öÍ·ÎļþÖж¨ÒåÁËÕâÑùÒ»¸öº¯Êý£º
int foo(int a, int b);
¶øÕâ¸öº¯ÊýµÄʵÏÖλÓÚÒ»¸ö.cÎļþÖУ¬Í¬Ê±£¬ÔÚ.cppÎļþÖе÷ÓÃÁËÕâ¸öº¯Êý¡£ÄÇô£¬µ±CPP±àÒëÆ÷±àÒëÕâ¸öº¯ÊýµÄʱºò£¬¾ÍÓпÉÄÜ»á°ÑÕâ¸öº¯Êý
Ãû¸Ä³É_fooii£¬ÕâÀïµÄii±íʾº¯ÊýµÄµÚÒ»²ÎÊýºÍµÚ¶þ²ÎÊý¶¼ÊÇÕûÐÍ¡£¶øC±àÒëÆ÷È´ÓпÉÄܽ«Õâ¸öº¯ÊýÃû±àÒë³É_foo¡£Ò²¾ÍÊÇ˵£¬ÔÚCPP±àÒëÆ÷µÃ
µ½µÄÄ¿±êÎļþÖУ¬foo()º¯ÊýÊÇÓÉ_fooii·ûºÅÀ´ÒýÓõģ¬¶øÔÚC±àÒëÆ÷Éú³ÉµÄÄ¿±êÎļþÖУ¬foo()º¯ÊýÊÇÓÉ_fooÖ¸´úµÄ¡£µ«Á¬½ÓÆ÷¹¤×÷µÄʱºò£¬Ëü
¿É²»¹ÜÉϲã²ÉÓõÄÊÇʲôÓïÑÔ£¬ËüÖ»ÈÏÄ¿±êÎļþÖеķûºÅ¡£ÓÚÊÇ£¬Á¬½ÓÆ÷½«»á·¢ÏÖÔÚ.cppÖе÷ÓÃÁËfoo()º¯Êý£¬µ«ÊÇÔÚÆäËüµÄÄ¿±êÎļþÖÐÈ´ÕÒ²»
µ½_fooiiÕâ¸ö·ûºÅ£¬ÓÚÊÇÌáʾÁ¬½Ó¹ý³Ì³ö´í¡£extern "C" {}ÕâÖÖÓï·¨ÐÎʽ¾ÍÊÇÓÃÀ´½â¾öÕâ¸öÎÊÌâµÄ¡£±¾ÎĽ«ÒÔʾÀý¶ÔÕâ¸öÎÊÌâ½øÐÐ˵Ã÷¡£
Ê×ÏȼÙÉèÓÐÏÂÃæÕâÑùÈý¸öÎļþ£º
/* file: test_extern_c.h */
#ifndef __TEST_EXTERN_C_H__
#define __TEST_EXTERN_C_H__
#ifdef __cplusplus
extern "C" {
#endif
/*
* this is a test function, which calculate
* the multiply of a and b.
*/
extern int ThisIsTest(int a, int b);
#ifdef __cplusplus
&n
Ïà¹ØÎĵµ£º
ÔÚNotes µÄC/S ±à³ÌÖУ¬¾³£ÐèÒª¶ÔÒ»¸ö¼¯ºÏÖеĶÔÏó½øÐбéÀú´¦Àí£¬ÕâʱÈç¹ûÄÜÏÔʾһ¸ö½ø¶ÈÌõָʾµ±Ç°´¦Àí½ø³Ì£¬¾Í±È½ÏÖ±¹ÛÐÎÏ󣬿ͻ§½çÃæÒ²±È½ÏÓѺá£
1¡¢ÉùÃ÷APIº¯Êý
'ÉùÃ÷APIº¯Êý
Declare Function NEMProgressBegin Lib&nbs ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. fcloseº¯Êý
fcloseº¯ÊýµÄ¹¦ÄÜÊǹرÕÒ»¸öÁ÷£¬ÆäÓ÷¨ÊÇ£ºint fclose(FILE *stream); ³ÌÐòÀý×ÓÈçÏ£º
#include <string.h& ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. fgetcº¯Êý
fgetcº¯ÊýµÄ¹¦ÄÜÊÇ´ÓÁ÷ÖжÁÈ¡×Ö·û£¬ÆäÓ÷¨ÊÇ£ºint fgetc(FILE *stream); ³ÌÐòÀý×ÓÈçÏ£º
#include <string.h ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. initgraphº¯Êý
initgraphº¯ÊýÊdzõʼ»¯Í¼ÐÎϵͳ£¬ÆäÓ÷¨Îª£ºvoid far initgraph(int far *graphdriver, int far *graphmode,char far *pathtodriver); ³ÌÐòÀý×ÓÈçÏ£ ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. kbhitº¯Êý
kbhitº¯ÊýÊǼì²éµ±Ç°°´Ïµļü£¬ÆäÓ÷¨Îª£ºint kbhit(void);³ÌÐòÀý×ÓÈçÏ£º
#include <conio.h>
int main(void)
{
c ......