¹ØÓÚ C/C++ º¯Êýµ÷ÓÃÔ¼¶¨£¬´ó¶àÊýʱºò²¢²»»áÓ°Ïì³ÌÐòÂß¼£¬µ«Óöµ½¿çÓïÑÔ±à³Ìʱ£¬Á˽âһϻ¹ÊÇÓкô¦µÄ¡£
VC ÖÐĬÈϵ÷ÓÃÊÇ __cdecl ·½Ê½£¬Windows API ʹÓà __stdcall µ÷Ó÷½Ê½£¬ÔÚ DLL µ¼³öº¯ÊýÖУ¬ÎªÁ˸ú Windows API ±£³ÖÒ»Ö£¬½¨ÒéʹÓà __stdcall ·½Ê½¡£
µ÷ÓÃÔ¼¶¨¸ú¶ÑÕ»Çå³ýÃÜÇÐÏà¹Ø¡£Èç¹ûдһ¸ö»ã±àº¯Êý£¬¸ø C/C++ µ÷Óã¬ÔÚ __cdecl ·½Ê½Ï£¬Ôò»ã±àº¯ÊýÎÞÐèÇå³ý¶ÑÕ»£¬ÔÚ __stdcall ·½Ê½Ï£¬»ã±àº¯ÊýÐèÒªÔÚ·µ»Ø£¨RET£©Ö®Ç°»Ö¸´¶ÑÕ»¡£
C ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡£
C++ ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡¢__thiscall£¬±È C ÓïÑÔ¶à³öÒ»ÖÖ __thiscall µ÷Ó÷½Ê½¡£
ÔÚVCÖУ¬¿ÉÒÔÉèÖÃĬÈϵĵ÷ÓÃÔ¼¶¨£¬ÉèÖ÷¾¶Îª£º
Project à Properties à Configuration Properties à C/C++ à Advanced à Call Conversion¡£
ÏÂÃæÏêϸ½éÉÜÈçÉÏÁùÖÖµ÷Ó÷½Ê½£º
1¡¢__cdecl
__cdeclµ÷ÓÃÔ¼¶¨ÓÖ³ÆÎª C µ÷ÓÃÔ¼¶¨£¬ÊÇ C/C++ ÓïÑÔȱʡµÄµ÷ÓÃÔ¼¶¨¡£²ÎÊý°´ÕÕ´ÓÓÒÖÁ×óµÄ·½Ê½ÈëÕ»£¬º¯Êý±¾Éí²»ÇåÀíÕ»£¬´Ë¹¤×÷Óɵ÷ÓÃÕ߸ºÔ𣬷µ»ØÖµÔÚEAXÖС£ÓÉÓÚÓɵ÷ÓÃÕßÇåÀíÕ»£¬ËùÒÔÔÊÐí¿É±ä²ÎÊýº¯Êý ......
¹ØÓÚ C/C++ º¯Êýµ÷ÓÃÔ¼¶¨£¬´ó¶àÊýʱºò²¢²»»áÓ°Ïì³ÌÐòÂß¼£¬µ«Óöµ½¿çÓïÑÔ±à³Ìʱ£¬Á˽âһϻ¹ÊÇÓкô¦µÄ¡£
VC ÖÐĬÈϵ÷ÓÃÊÇ __cdecl ·½Ê½£¬Windows API ʹÓà __stdcall µ÷Ó÷½Ê½£¬ÔÚ DLL µ¼³öº¯ÊýÖУ¬ÎªÁ˸ú Windows API ±£³ÖÒ»Ö£¬½¨ÒéʹÓà __stdcall ·½Ê½¡£
µ÷ÓÃÔ¼¶¨¸ú¶ÑÕ»Çå³ýÃÜÇÐÏà¹Ø¡£Èç¹ûдһ¸ö»ã±àº¯Êý£¬¸ø C/C++ µ÷Óã¬ÔÚ __cdecl ·½Ê½Ï£¬Ôò»ã±àº¯ÊýÎÞÐèÇå³ý¶ÑÕ»£¬ÔÚ __stdcall ·½Ê½Ï£¬»ã±àº¯ÊýÐèÒªÔÚ·µ»Ø£¨RET£©Ö®Ç°»Ö¸´¶ÑÕ»¡£
C ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡£
C++ ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡¢__thiscall£¬±È C ÓïÑÔ¶à³öÒ»ÖÖ __thiscall µ÷Ó÷½Ê½¡£
ÔÚVCÖУ¬¿ÉÒÔÉèÖÃĬÈϵĵ÷ÓÃÔ¼¶¨£¬ÉèÖ÷¾¶Îª£º
Project à Properties à Configuration Properties à C/C++ à Advanced à Call Conversion¡£
ÏÂÃæÏêϸ½éÉÜÈçÉÏÁùÖÖµ÷Ó÷½Ê½£º
1¡¢__cdecl
__cdeclµ÷ÓÃÔ¼¶¨ÓÖ³ÆÎª C µ÷ÓÃÔ¼¶¨£¬ÊÇ C/C++ ÓïÑÔȱʡµÄµ÷ÓÃÔ¼¶¨¡£²ÎÊý°´ÕÕ´ÓÓÒÖÁ×óµÄ·½Ê½ÈëÕ»£¬º¯Êý±¾Éí²»ÇåÀíÕ»£¬´Ë¹¤×÷Óɵ÷ÓÃÕ߸ºÔ𣬷µ»ØÖµÔÚEAXÖС£ÓÉÓÚÓɵ÷ÓÃÕßÇåÀíÕ»£¬ËùÒÔÔÊÐí¿É±ä²ÎÊýº¯Êý ......
±¾ÎĽéÉÜÁËʹÓÃPro*C/C++ÔÚVisual
C++»·¾³Ï¿ª·¢OracleÊý¾Ý¿â½Ó¿Ú³ÌÐòµÄ·½·¨
Éè¼ÆË¼Â·ÆäʵÕâÑù£ºÊ×ÏÈͨ¹ýVC½¨Á¢Ò»¸ö¹¤³Ì£¬×Ô¶¯»¯½¨Á¢MAKEFILE£¬UNIXÐèÒª×Ô¼ºÐ´MAKEFILE¡£
Æä´ÎÅäÖÃVCµÄ»·¾³£¬½«PROCµÄ.H£¬.LIBµÄ·¾¶¼ÓÈëDERECTIRY¡£Ð´Ò»¸öPCÎļþ£¬¼´PROCÎļþ¡£·Åµ½¹¤³ÌÏàÓ¦µÄĿ¼Ï¡£È»ºó°ÑPCÎļþ¼ÓÈ빤³Ì¡£Ê¹ÓÃPROCUI.EXE±àÒë³ÉCÔ´Îļþ¡£
Ñ¡ÔñOraSQL8.LIBÎļþ£¬µ¥»÷“´ò¿ª”Å¥£¬Íê³É½«ÔËÐпâÎļþ¼ÓÈ빤³Ì¡£
×îºó°ÑCÎļþ¼ÓÈ빤³Ì¡£¡¡
¸ÅÊö
¡¡¡¡ÔÚVisual
C++Ï¿ª·¢Oracle¿â½Ó¿ÚÖ÷ÒªÓÐÁ½ÖÖ·½·¨¡£Ò»ÖÖ·½·¨ÊÇÀûÓÃVisual
C++ÌṩµÄ¶àÖÖÊý¾Ý¿â·ÃÎʼ¼Êõ£¬È翪·ÅÊý¾Ý¿âÁ¬½ÓODBC¡¢Êì¾Ý´æÈ¡¶ÔÏóDAO¡¢¶ÔÏóÁ¬½ÓºÍǶÈëÊý¾Ý¿âOLE
DBºÍActiveXÊý¾Ý¶ÔÏóADOµÈ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚVisual
C++ÖÐǶÈëSQLÓï¾ä£¬Õâ¾ÍÊÇËùÖ¸µÄPro*C/C++£¨±¾Îļò³ÆPROC£©¡£Ç°Ò»ÖÖ·½·¨ÓÉÓÚÓÐMFC
Ç¿´óµÄÀà¿âÖ§³Ö£¬ÊìϤVC±à³ÌʱÔòʵÏÖ·½±ã£¬ÇÒ¿ÉÒÆÖ²ÐÔÇ¿£»µ«ÊÇ£¬ÓëPROC
Ïà±È£¬Ó¦ÓóÌÐòÐèÒª¾¹ýÁ½²ã²ÅÄܺÍÊý¾Ý¿âͨÐŽӿڽ¨Á¢ÁªÏµ£¬±à³ÌÏà¶Ô¸´ÔÓ£¬Ö´ÐÐЧÂÊÏà¶Ô½ÏµÍ¡£PROCÖ§³ÖǶÈëʽPL/SQL ¿éµÈÖ±½Óµ÷ÓÃOracle
¿â£¬½«¹ý³Ì»¯ÓïÑԺͷǹý³Ì»¯ÓïÑÔÏà½áºÏ£¬ÐγÉÒ»ÖÖ¸üÇ¿µÄ¿ª·¢¹¤¾ß£¬¿É¿ª·¢³öÂú×ã¸÷ÖÖ¸ ......
±¾ÎĽéÉÜÁËʹÓÃPro*C/C++ÔÚVisual
C++»·¾³Ï¿ª·¢OracleÊý¾Ý¿â½Ó¿Ú³ÌÐòµÄ·½·¨
Éè¼ÆË¼Â·ÆäʵÕâÑù£ºÊ×ÏÈͨ¹ýVC½¨Á¢Ò»¸ö¹¤³Ì£¬×Ô¶¯»¯½¨Á¢MAKEFILE£¬UNIXÐèÒª×Ô¼ºÐ´MAKEFILE¡£
Æä´ÎÅäÖÃVCµÄ»·¾³£¬½«PROCµÄ.H£¬.LIBµÄ·¾¶¼ÓÈëDERECTIRY¡£Ð´Ò»¸öPCÎļþ£¬¼´PROCÎļþ¡£·Åµ½¹¤³ÌÏàÓ¦µÄĿ¼Ï¡£È»ºó°ÑPCÎļþ¼ÓÈ빤³Ì¡£Ê¹ÓÃPROCUI.EXE±àÒë³ÉCÔ´Îļþ¡£
Ñ¡ÔñOraSQL8.LIBÎļþ£¬µ¥»÷“´ò¿ª”Å¥£¬Íê³É½«ÔËÐпâÎļþ¼ÓÈ빤³Ì¡£
×îºó°ÑCÎļþ¼ÓÈ빤³Ì¡£¡¡
¸ÅÊö
¡¡¡¡ÔÚVisual
C++Ï¿ª·¢Oracle¿â½Ó¿ÚÖ÷ÒªÓÐÁ½ÖÖ·½·¨¡£Ò»ÖÖ·½·¨ÊÇÀûÓÃVisual
C++ÌṩµÄ¶àÖÖÊý¾Ý¿â·ÃÎʼ¼Êõ£¬È翪·ÅÊý¾Ý¿âÁ¬½ÓODBC¡¢Êì¾Ý´æÈ¡¶ÔÏóDAO¡¢¶ÔÏóÁ¬½ÓºÍǶÈëÊý¾Ý¿âOLE
DBºÍActiveXÊý¾Ý¶ÔÏóADOµÈ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚVisual
C++ÖÐǶÈëSQLÓï¾ä£¬Õâ¾ÍÊÇËùÖ¸µÄPro*C/C++£¨±¾Îļò³ÆPROC£©¡£Ç°Ò»ÖÖ·½·¨ÓÉÓÚÓÐMFC
Ç¿´óµÄÀà¿âÖ§³Ö£¬ÊìϤVC±à³ÌʱÔòʵÏÖ·½±ã£¬ÇÒ¿ÉÒÆÖ²ÐÔÇ¿£»µ«ÊÇ£¬ÓëPROC
Ïà±È£¬Ó¦ÓóÌÐòÐèÒª¾¹ýÁ½²ã²ÅÄܺÍÊý¾Ý¿âͨÐŽӿڽ¨Á¢ÁªÏµ£¬±à³ÌÏà¶Ô¸´ÔÓ£¬Ö´ÐÐЧÂÊÏà¶Ô½ÏµÍ¡£PROCÖ§³ÖǶÈëʽPL/SQL ¿éµÈÖ±½Óµ÷ÓÃOracle
¿â£¬½«¹ý³Ì»¯ÓïÑԺͷǹý³Ì»¯ÓïÑÔÏà½áºÏ£¬ÐγÉÒ»ÖÖ¸üÇ¿µÄ¿ª·¢¹¤¾ß£¬¿É¿ª·¢³öÂú×ã¸÷ÖÖ¸ ......
1.1 ±äÁ¿×÷ÓÃÓò
1.1.1 ¼¸ÖÖ³£¼ûÀàÐͱäÁ¿µÄ×÷ÓÃÓò
×÷ÓÃÓò£¨scope£©»òÕ߿ɼûÐÔÊÇÖ¸±äÁ¿ÔÚ³ÌÐòÄڵĿɼûºÍ¿ÉÒýÓõķ¶Î§¡£
±ÈÈç:
1¡¢ È«¾Ö±äÁ¿ÔÚËùÓеÄÎļþ¶¼¿É¼û£¬ÄÇËûµÄ×÷ÓÃÓò¾ÍÊÇËùÓÐÎļþ£»
2¡¢ static¶¨ÒåµÄÈ«¾Ö±äÁ¿£¬Ö»ÔÚ¶¨ÒåËüµÄÔ´ÎļþÖпɼû£¬ÄÇËûµÄ×÷ÓÃÓò¾ÍÊÇÆäËùÔÚµÄÔ´Îļþ£»
3¡¢ º¯ÊýÄÚ²¿µÄ¾Ö²¿±äÁ¿£¬Ö»ÔÚÆäº¯Êý·¶Î§Äڿɼû£»
4¡¢ ÓÐЩ±äÁ¿£¬Ö»ÔÚijһ¿é´úÂë¶ÎÄڿɼû£¨»¨À¨ºÅÀ¨ÆðÀ´µÄÒ»¶Î´úÂ룩£»
void test_fun()
{
int test_i = 0;
test_i = 10;
if (test_i != 0)
{
int test_count = 15;
test_i = test_count;
}
test_i = test_count;//ÕâÀï»á±àÒë³ö´í£¬ÒòΪtest_countÖ»ÔÚifÌõ¼þµÄ»¨À¨ºÅÖÐÓÐЧ¡£
}
1.1.2 ±äÁ¿Ê¹Óõĸ߼¶»°Ìâ
ÏÂÃæ´ó²¿·ÖÄÚÈÝÀ´×Ô¡¶´úÂë´óÈ«¡·¡£
1.1.2.1 ʹ±äÁ¿ÒýÓþֲ¿»¯
¡¶´úÂë´óÈ«¡·Õâ±¾Êé½éÉÜÁ˹¥»÷´°¿ÚµÄ¸ÅÄ½éÓÚͬһ¸ö±äÁ¿¶à¸öÒýÓõãÖ®¼äµÄ´úÂë¿É³ÉΪ¹¥»÷´°¿Ú£¬ÔÚÕâ¸ö´°¿ÚÖÐÐÂÔö´úÂ룬¿ÉÄܻ᲻µ±µÄÐ޸Ĵ˱äÁ¿¡£
Ò»°ã¶øÑÔ£¬°Ñ¶ÔÒ»¸ö±äÁ¿µÄÒýÓþֲ¿»¯£¬¼´°ÑÒýÓõ㾡¿ÉÄܼ¯ÖÐÔÚÒ»Æð×ÜÊÇÒ»ÖֺܺõÄ×ö·¨¡£Ö÷ÒªµÄºÃ´¦ÊÇÌá¸ß³ÌÐòµÄ¿É¶ÁÐԺͿÉά»¤ÐÔ¡£Èç¹û±äÁ¿µÄÒýÓõ㶼ºÜ¼¯ÖУ¬ÔòÔĶÁ´úÂëµÄʱºò£¬Ö»Òª¹Ø×¢ÕâÒ»¿é´úÂë¾Í¿ ......
Ô¤´¦ÀíÆ÷£¨Preprocessor£©
¡¡
¡¡¡¡1 . ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
¡¡
¡¡¡¡#define SECONDS_PER_YEAR £¨60 * 60 * 24 * 365£©
¡¡
¡¡¡¡ÎÒÔÚÕâÏë¿´µ½¼¸¼þÊÂÇ飺
¡ï¡£#define Óï·¨µÄ»ù±¾ÖªÊ¶£¨ÀýÈ磺²»ÄÜÒԷֺŽáÊø£¬À¨ºÅµÄʹÓ㬵ȵȣ©
¡¡
¡¡¡¡¡ï¡£¶®µÃÔ¤´¦ÀíÆ÷½«ÎªÄã¼ÆËã³£Êý±í´ïʽµÄÖµ£¬Òò´Ë£¬Ö±½Óд³öÄãÊÇÈçºÎ¼ÆËãÒ»ÄêÖÐÓжàÉÙÃë¶ø²»ÊǼÆËã³öʵ¼ÊµÄÖµ£¬ÊǸüÇåÎú¶øÃ»Óдú¼ÛµÄ¡£
¡¡
¡¡¡¡¡ï¡£Òâʶµ½Õâ¸ö±í´ïʽ½«Ê¹Ò»¸ö16λ»úµÄÕûÐÍÊýÒç³ö-Òò´ËÒªÓõ½³¤ÕûÐÍ·ûºÅL£¬¸æËß±àÒëÆ÷Õâ¸ö³£ÊýÊǵij¤ÕûÐÍÊý¡£
¡¡
¡¡¡¡¡ï¡£Èç¹ûÄãÔÚÄãµÄ±í´ïʽÖÐÓõ½UL£¨±íʾÎÞ·ûºÅ³¤ÕûÐÍ£©£¬ÄÇôÄãÓÐÁËÒ»¸öºÃµÄÆðµã¡£¼Çס£¬µÚÒ»Ó¡ÏóºÜÖØÒª¡£
¡¡
¡¡¡¡2 . дһ¸ö“±ê×¼”ºêMIN £¬Õâ¸öºêÊäÈëÁ½¸ö²ÎÊý²¢·µ»Ø½ÏСµÄÒ»¸ö¡£
¡¡
¡¡¡¡#define MIN£¨A£¬B£© £¨£¨A£© <= £¨B£© £¿ £¨A£© £º £¨B£©£©
¡¡
¡¡¡¡Õâ¸ö²âÊÔÊÇΪÏÂÃæµÄÄ¿µÄ¶øÉèµÄ£º
¡ï¡£±êʶ#defineÔÚºêÖÐÓ¦ÓõĻù±¾ÖªÊ¶¡£ÕâÊǺÜÖØÒªµÄ£¬ÒòΪֱµ½Ç¶È루inline£©²Ù×÷·û±äΪ±ê×¼CµÄÒ»²¿·Ö£¬ºêÊÇ·½±ã²úÉúǶÈë´úÂëµÄΨһ·½·¨£¬¶ÔÓ ......
C ÓïÑÔµÄÃæÏò¶ÔÏó
ÈçǰËù˵£¬ÃæÏò¶ÔÏóÊÇÒ»ÖÖÈí¼þÉè¼ÆµÄ˼Ï룬ÊÇÓïÑÔÎ޹صġ£ÔÚ±¾½ÚÖУ¬ÎÒ¾ÙÒ»¸öÁ´±í(list) µÄÀý×ÓÀ´ËµÃ÷ÈçºÎÔÚ C ÓïÑÔÖеÄÉè¼Æ³öÓÐÃæÏò¶ÔÏó·ç¸ñµÄ´úÂë¡£
¶¨Òå½Ó¿Ú
½Ó¿ÚÊÇÃæÏò¶ÔÏóÓïÑÔÖеÄÒ»¸ö±È½ÏÖØÒªµÄ¸ÅÄ½Ó¿ÚÖ»¶ÔÍⲿ³ÐŵʵÏָýӿڵÄʵÌå¿ÉÒÔÍê³ÉʲôÑùµÄ¹¦ÄÜ£¬µ«ÊDz»±©Â¶ÊµÏֵķ½Ê½¡£ÕâÑùµÄºÃ´¦ÊÇ£¬ÊµÏÖÕß¿ÉÒÔÔÚ²»½Ó´¥½Ó¿ÚʹÓÃÕߵĴúÂëµÄÇé¿öÏ£¬¶ÔʵÏÖ½øÐе÷Õû¡£
ÎÒÃÇÀ´¿´¿´Á´±íµÄ½Ó¿Ú¶¨Ò壺
Çåµ¥ 1. Á´±íµÄ½Ó¿Ú¶¨Òå
#ifndef _ILIST_H
#define _ILIST_H
// ¶¨ÒåÁ´±íÖеĽڵã½á¹¹
typedef struct node{
void *data;
struct node *next;
}Node;
// ¶¨ÒåÁ´±í½á¹¹
typedef struct list{
struct list *_this;
Node *head;
int size;
void (*insert)(void *node);// º¯ÊýÖ¸Õë
void (*drop)(void *node);
void (*clear)();
int (* ......
<%
yourip=Request.ServerVariables("REMOTE_ADDR")
if yourip="111.111.111.111" then
Response.Redirect ("http://www.baidu.com")
end if
%>
Dim UserIP
UserIP = Request.ServerVariables("Http_X_Forwarded_For")
If UserIP = "" Then UserIP = Request.ServerVariables("Remote_Addr") : UserIP = Trim(Replace(UserIP,"'",""))
If UserIP="192.168.1.2" Then
Response.Write "»¶Ó**Íø°É"
Else
Response.Write "»¶Ó¹âÁÙ"
End If
<%
'Èç¹ûÖ»ÓÐÁ½Èý¸öIP,ÈçÏ·½·¨£º
If UserIP="192.168.1.2" Or UserIP="222.231.31.46" Then
Response.Write "»¶Ó**Íø°É"
Else
Response.Write "»¶Ó¹âÁÙ"
End If
####################################################################
'Èç¹ûÓжà¸öÌõ¼þIP£¬¿ÉÒÔдһ¸ö´¦Àí¶à¸öIPµÄº¯Êý£º
Public Sub Welcome(ByVal IPs, ByVal UserIP, ByVal InternetBarName)
Dim i,Authorization
Authorization = False
IPs = Split(IPs,"|")
For i = 0 To UBound(IPs)
If Trim(IPs(i)) = UserIP Then
Authorization = True
Exit For
End If
Next
If Authorization = Tr ......