Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

½«Win32 C/C++Ó¦ÓóÌÐòÇ¨ÒÆµ½Linux

±¾ÎĵÄÄÚÈÝÊÇ Win32 API£¨ÌرðÊǽø³Ì¡¢Ï̺߳͹²ÏíÄÚ´æ·þÎñ£©µ½ POWER ÉÏ Linux µÄÓ³Éä¡£±¾ÎÄ¿ÉÒÔ°ïÖúÄúÈ·¶¨ÄÄÖÖÓ³Éä·þÎñ×îÊʺÏÄúµÄÐèÒª¡£×÷ÕßÏòÄúÏêϸ½éÉÜÁËËûÔÚÒÆÖ² Win32 C/C++ Ó¦ÓóÌÐòʱÓöµ½µÄ API Ó³Éä¡£
¸ÅÊö
Óкܶ෽ʽ¿ÉÒÔ½« Win32 C/C++ Ó¦ÓóÌÐòÒÆÖ²ºÍÇ¨ÒÆµ½ pSeries ƽ̨¡£Äú¿ÉÒÔʹÓÃÃâ·ÑÈí¼þ»òÕßµÚÈý·½¹¤¾ßÀ´½« Win32 Ó¦ÓóÌÐò´úÂëÒÆµ½ Linux¡£ÔÚÎÒÃǵķ½°¸ÖУ¬ÎÒÃǾö¶¨Ê¹ÓÃÒ»¸ö¿ÉÒÆÖ²²ãÀ´³éÏóϵͳ API µ÷Ó᣿ÉÒÆÖ²²ã½«Ê¹ÎÒÃǵÄÓ¦ÓóÌÐò¾ßÓÐÒÔÏÂÓÅÊÆ£º
ÓëÓ²¼þÎ޹ء£
Óë²Ù×÷ϵͳÎ޹ء£
Óë²Ù×÷ϵͳÉϰ汾Óë°æ±¾¼äµÄ±ä»¯Î޹ء£
Óë²Ù×÷ϵͳ API ·ç¸ñ¼°´íÎó´úÂëÎ޹ء£
Äܹ»Í³Ò»µØÔÚ¶Ô OS µÄµ÷ÓÃÖÐÖÃÈëÐÔÄÜºÍ RAS ¹³×Ó£¨hook£©¡£
ÓÉÓÚ Windows »·¾³Óë pSeries Linux »·¾³ÓкܴóÇø±ð£¬ËùÒÔ½øÐпç UNIX ƽ̨µÄÒÆÖ²±È½øÐÐ´Ó Win32 ƽ̨µ½ UNIX ƽ̨µÄÒÆÖ²ÒªÈÝÒ׵öࡣÕâÊÇ¿ÉÒÔÏëµ½µÄ£¬ÒòΪºÜ¶à UNIX ϵͳ¶¼Ê¹Óù²Í¬µÄÉè¼ÆÀíÄÔÚÓ¦ÓóÌÐò²ãÓзdz£¶àµÄÀàËÆÖ®´¦¡£²»¹ý£¬Win32 API ÔÚÒÆÖ²µ½ Linux ʱÊÇÊÜÏ޵ġ£±¾ÎÄÆÊÎöÁËÓÉÓÚ Linux ºÍ Win32 Ö®¼äÉè¼ÆµÄ²»Í¬¶øÒý·¢µÄÎÊÌâ¡£
³õʼ»¯ºÍÖÕÖ¹
ÔÚ Win2K/NT ÉÏ£¬DLL µÄ³õʼ»¯ºÍÖÕÖ¹Èë¿ÚµãÊÇ _DLL_InitTerm º¯Êý¡£µ±Ã¿¸öеĽø³Ì»ñµÃ¶Ô DLL µÄ·ÃÎÊʱ£¬Õâ¸öº¯Êý³õʼ»¯ DLL Ëù±ØÐèµÄ»·¾³¡£µ±Ã¿¸öеĽø³ÌÊÍ·ÅÆä¶Ô DLL µÄ·ÃÎÊʱ£¬Õâ¸öº¯ÊýΪÄǸö»·¾³ÖÕÖ¹ DLL¡£µ±ÄúÁ´½Óµ½ÄǸö DLL ʱ£¬Õâ¸öº¯Êý»á×Ô¶¯µØ±»µ÷Ó᣶ÔÓ¦ÓóÌÐò¶øÑÔ£¬_DLL_InitTerm º¯ÊýÖаüº¬ÁËÁíÍâÒ»¸ö³õʼ»¯ºÍÖÕÖ¹Àý³Ì¡£
ÔÚ Linux ÉÏ£¬GCC ÓÐÒ»¸öÀ©Õ¹£¬ÔÊÐíÖ¸¶¨µ±¿ÉÖ´ÐÐÎļþ»òÕß°üº¬ËüµÄ¹²Ïí¶ÔÏóÆô¶¯»òֹͣʱӦ¸Ãµ÷ÓÃij¸öº¯Êý¡£Óï·¨ÊÇ __attribute__((constructor)) »ò __attribute__((destructor))¡£ÕâЩ»ù±¾ÉÏÓë¹¹Ô캯Êý¼°Îö¹¹º¯ÊýÏàͬ£¬¿ÉÒÔÌæ´ú glibc ¿âÖÐµÄ _init ºÍ _fini º¯Êý¡£
ÕâЩº¯ÊýµÄ C Ô­ÐÍÊÇ£º
void __attribute__ ((constructor)) app_init(void);
void __attribute__ ((destructor)) app_fini(void);
Win32 sample
_DLL_InitTerm(HMODULE modhandle, DWORD fdwReason, LPVOID lpvReserved)
{
WSADATA Data;
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
if (_CRT_init() == -1)
return 0L;
/* start with initialization code */


Ïà¹ØÎĵµ£º

C++´¦ÀíconstÀàÐͱäÁ¿ÓëCµÄ²»Í¬

    constÓë#define×î´óµÄ²î±ð£¬ConstÔÚ¶ÑÕ»·ÖÅäÁ˿ռ䣬¶ø#defineÖ»ÊǰѾßÌåÊýÖµÖ±½Ó´«µÝµ½Ä¿±ê±äÁ¿°ÕÁË¡£»òÕß˵£¬constµÄ³£Á¿ÊÇÒ»¸öRun-TimeµÄ¸ÅÄËûÔÚ³ÌÐòÖÐȷȷʵʵµÄ´æÔÚ¿ÉÒÔ±»µ÷Óᢴ«µÝ¡£¶ø#define³£Á¿ÔòÊÇÒ»¸öCompile-Time¸ÅÄËüµÄÉúÃüÖÜÆÚÖ¹ÓÚ±àÒëÆÚ£ºÔÚʵ¼Ê³ÌÐòÖÐËûÖ»ÊÇÒ»¸ö³£Êý¡¢Ò»¸öÃüÁîÖе ......

¹¹½¨×Ô¼ºµÄC/C++²å¼þ¿ª·¢¿ò¼Ü——ϵÁÐ

ÕâһϵÁÐÎÄÕÂÊÇÎÒ¹¹½¨C/C++²å¼þ¿ª·¢¿ò¼Ü¿ª·Å¿ò¼ÜµÄ¹ý³Ì¡£ºóÃæ»áÒ»Ö±¸üУ¬Ö±ÖÁ¹¹½¨Íê³É¡£
¡¶¹¹½¨×Ô¼ºµÄC/C++²å¼þ¿ª·¢¿ò¼Ü£¨Ò»£©——³õ²½ÉèÏë¡·
¡¶¹¹½¨×Ô¼ºµÄC/C++²å¼þ¿ª·¢¿ò¼Ü£¨¶þ£©——×ÜÌ幦ÄÜ¡·
¡¶
¹¹½¨×Ô¼ºµÄC/C++²å¼þ¿ª·¢¿ò¼Ü£¨Èý£©——×ÜÌå½á¹¹
¡·
¡¶¹¹½¨×Ô¼ºµÄC/C++²å¼þ¿ª·¢¿ò¼ ......

ѸÀ×±ÊÊÔ ×Ö·û´®·´×ª C¿âº¯Êý strrev

char* my_strrev( char* string )
{
 char *left, *right, ch;
 left = right = string;
 while( *right++ != '\0');
 right -= 2;
 while( left<right )
 {
  ch = *left;
  *left = *right;
  *right = ch;
  ++left; --right;
&n ......

CÓïÑÔÖ¸ÕëÓëÊý×é(Cר¼Ò±à³Ì)

1.Çø±ð(Ö÷ÒªµÄ):Ö¸ÕëÐèÒªÔö¼ÓÒ»´Î¶îÍâµÄÌáÈ¡²Ù×÷
     ±àÒëÆ÷Ϊÿ¸ö±äÁ¿·ÖÅäÒ»¸öµØÖ·(×óÖµ)¡£Õâ¸öµØÖ·±àÒëʱ¿ÉÖª£¬¶øÇҸñäÁ¿ÔÚÔËÐÐʱһֱ±£´æÓÚÕâ¸öµØÖ·¡£Ïà·´£¬´æ´¢ÓÚ±äÁ¿ÖеÄÖµ(ËüµÄÓÒÖµ)Ö»ÓÐÔÚÔËÐÐʱ²Å¿ÉÖª¡£Èç¹ûÐèÒªÓõ½±äÁ¿Öд洢µÄÖµ£¬±àÒëÆ÷¾Í·¢³öÖ¸Áî´ÓµØÖ·¶ÁÈë±äÁ¿Öµ²¢½«Ëü´æÓڼĴæÆ÷ÖС£
  ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ