²é¿´: 730  |  »Ø¸´: 1
±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

zzahkj

ľ³æ (ÖøÃûдÊÖ)

Áú

[½»Á÷] ¹ØÓÚµ÷ÓÃdllµÄ¼òµ¥ÎÊÌ⣿ ÒÑÓÐ1È˲ÎÓë

ÎÒÐèÓÃVb.netµ÷ÓÃFortran±àÒëµÄdll£¬ÎÒÔÚÍøÉÏ¿´µ½µÄ¸ñʽ´ó¸ÅÊÇ Public Declare Function XXXX Lib "xxx.dll" (ByVal xxx As IntPtr, ByRef xxx As Integer) As Integer
ÕâЩxxx¶¼ÊÇЩʲô£¿ÇóÏê½â£¿»¹ÓбðÈ˸øÎÒÒ»¸ödllµ÷Óã¬ÎÒÐèÒªÖªµÀ¹ØÓÚÕâ¸ödllµÄÄÄЩ¶«Î÷£¬Èçʲô²ÎÊý°¡£¬½Ó¿Ú°¡£¿ÇóÏê½â£¬ÐÂÊÖ£¬Ø½ÐèÁ˽⣬лл£¡
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

²»ÒªÃÔÁµ¸ç£¬¸çÖ»ÊÇÒ»¸ö¹ý¿Í£¡
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3, ³ÌÐòÇ¿Ìû+1): ¹ÄÀøÓ¦Öú£¡ 2011-05-25 17:33:42
»°Ëµ½ñÌìÎÒÒ²²»µÃ²»Ñо¿Ò»ÏÂVB...żȻ¿´¼ûÕâÌù£¬ËµÏ¸ÐÏëÀ²...

²»¹ýÎÒ×öµÄÊÇVBµ÷ÓÃVC±àÒëµÄDLL£¬Ô­ÀíÆäʵÊÇÒ»ÑùµÄ

Public Declare Function AAA Lib "BBB.dll" (ByVal CCC As IntPtr, ByRef DDD As Integer) As Integer

Õâ¸ö¶«Î÷Èç×ÖÃæÒâ˼£¬ÊǸö¡°ÉùÃ÷¡±£¬ËüËùÉùÃ÷µÄº¯ÊýÃûΪAAA¡£ÉùÃ÷²¢·ÇʵÏÖ£¬¶øÖ»ÊǸæËß³ÌÐò£¬Õâ¸öº¯ÊýÊÇÓ¦¸ÃÔõÑùµ÷Óõ썱ÈÈç²ÎÊýΪCCC£¬DDD£¬·µ»ØÖµÎªIntegerÕâЩÐÅÏ¢£¬ÊDZàÒëÆ÷¡¾×¢1¡¿ËùÐèÒªÖªµÀµÄ£©

ÔÚÕâÀï¶à·Ï»°Á½¾ä£¬º¯ÊýÃû£¬ºÎÎïÒ²£¿

º¯ÊýÃû²¢²»Ò»¶¨ÊÇÔÚFortran»òÕßC/C++ÀïÃæµÄº¯ÊýÃûŶ£¡ÈÏʶµ½ÕâÒ»µãÖÁ¹ØÖØÒª¡£±àÒë³ÉDLLÖ®ºó£¬±àÒëÆ÷ºÜ¿ÉÄܶԺ¯ÊýÃû½øÐÐÁËһЩ¸ü¸Ä~

ÄÇôVBµ½µ×ÐèҪʲôÑùµÄ¡°º¯ÊýÃû¡±ÄØ£¿ÔÚVCÀïÃæÓÐÒ»¸ödumpbin.exeµÄ¹¤¾ß£¨×ÐϸÕÒÕÒ£¬ºÇºÇ£©£¬±ÈÈçÎÒ×öÁËÒ»¸öDLLÎļþÊÇdlltest.dll£¬ÄÇô£º
CODE:
dumpbin -exports dlltest.dll

ÆäÖÐÖØÒªµÄÊä³ö²¿·ÖÊÇ
CODE:
    ordinal hint RVA      name

          1    0 00001090 Exit = _Exit@0
          2    1 00001000 Init = _Init@0
          3    2 00001060 Read = _Read@20
          4    3 00001030 Write = _Write@12

OK£¬ÕâÑùÎÒÃÇ¿ÉÒÔÖªµÀÕâ¸öDLLÀïÃæÓÐ4¸öº¯Êý£¬º¯ÊýÃû·Ö±ðΪExit£¬Init£¬ReadºÍWrite

ÕâʱºòÔÚVBÉùÃ÷µÄʱºò£¬ÕâЩÃû×Ö¾ÍÅÉÉÏÓó¡ÁË~

ºÇºÇ£¬¼ÇµÃÉÏÃæÎÒÌáµ½¹ý±àÒëÆ÷ºÜ¿ÉÄÜ»á¸ü¸ÄÄãµÄº¯ÊýÃû£¬±ÈÈçÈç¹ûÊÇÓÃ.cpp×öµÄDLL£¬È»ºóûÓÐextern "C"£¬Ò²Ã»ÓÐÖ¸¶¨.defÎļþ£¨Ä£¿é¶¨ÒåÎļþ£©£¬ÄÇôÉÏÃæµÄÃüÁ½á¹û»á±ä³ÉÕâÑù£º
CODE:
        ordinal hint RVA      name

          1    0 00001090 ?Exit@@YGHXZ = ?Exit@@YGHXZ (int __stdcall Exit(void))

          2    1 00001000 ?Init@@YGHXZ = ?Init@@YGHXZ (int __stdcall Init(void))

          3    2 00001060 ?Read@@YGHPBDJPAJJJ@Z = ?Read@@YGHPBDJPAJJJ@Z (int __stdcall Read(char const *,long,long *,long,long))

          4    3 00001030 ?Write@@YGHPBDJPAJ@Z = ?Write@@YGHPBDJPAJ@Z (int __stdcall Write(char const *,long,long *))

Õâ¸öʱºòÄã»áºÜ¾ªÑȺ¯ÊýÃû¾¹È»ÊÇ¡°?Exit@@YGHXZ = ?Exit@@YGHXZ (int __stdcall Exit(void))¡±ÕâÖÖÂÒÔãÔãµÄ¶«Î÷£¨¿È£¬Æäʵ»¹ÊÇÓÐµã¹æÂɵģ©£¬Õâ¸öʱºò£¬ÔÚVBÀïÃæ¾Í²»ºÃÖ¸¶¨º¯ÊýÃûÁË£¬ËùÒÔ×îºÃ»¹ÊÇÀÏÀÏʵʵÈÃÉú³ÉµÄDLLÓиö¼ò½àµÄº¯ÊýÃû~

FortranµÄ»°£¬»á²»»áÓöµ½ÉÏÃæËù˵µÄÎÊÌ⣬ÔÝʱ²»´óÇå³þ£¬±Ï¾¹ÎÒûÓùýFortranµÄ±àÒëÆ÷£¬²»¹ý±àÒë³ÉDLLÖ®ºó£¬ÔÚÕâ¸ö¶þ½øÖƲãÃæ£¬ËüºÍC/C++Ó¦¸Ã²¢ÎÞ¶þÖ£¨¿È£¬²»ÖªµÀFortranµÄº¯Êýµ÷ÓÃÔ¼¶¨ÊDz»ÊÇstdcall£©~Èç¹ûÂ¥Ö÷»¹ÓÐʲôÎÊÌ⣬¿ÉÒÔ¸úÌû½»Á÷ÏÂ~

¡¾×¢1¡¿¿È£¬³õѧVB£¬²»´óÈ·ÐÅÕâ¸ö¶«Î÷ÊDz»ÊǸýС°±àÒëÆ÷¡±£¿»¹ÊÇÓ¦¸Ã½Ð¡°½âÎöÆ÷¡±£¿
2Â¥2011-05-25 14:33:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zzahkj µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 8rmuugja8q 2026-02-22 8/400 2026-02-23 12:22 by alian_214
[»ù½ðÉêÇë] ÌåÖÆÄÚ³¤±²ËµÌåÖÆÄÚ¾ø´ó²¿·ÖÒ»±²×ÓÔڵײ㣬ÈçͬÄãÃÇÒ»Ñù´ó²¿·ÖÆÕͨ½ÌʦæÇÒÊÕÈëµÍ +10 ˲ϢÓîÖæ 2026-02-20 13/650 2026-02-23 11:23 by holypower
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 8/400 2026-02-23 09:35 by w4l55oybr1
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 8/400 2026-02-23 09:29 by w4l55oybr1
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 usprnugpzw 2026-02-21 11/550 2026-02-23 09:24 by w4l55oybr1
[½Ìʦ֮¼Ò] ΪʲôÖйú´óѧ¹¤¿Æ½ÌÊÚÃÇË®ÁËÄÇô¶àËùνµÄ¶¥»á¶¥¿¯£¬µ«»¹ÊÇ×ö²»³öÓîÊ÷»úÆ÷ÈË£¿ +5 »¶ÀÖËÌÒ¶Ýè 2026-02-21 8/400 2026-02-23 09:19 by »¶ÀÖËÌÒ¶Ýè
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 w89i99eaeh 2026-02-22 5/250 2026-02-23 08:04 by w4l55oybr1
[²©ºóÖ®¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 6/300 2026-02-23 07:59 by w4l55oybr1
[²©ºóÖ®¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +6 3dfhjxgsh7 2026-02-22 9/450 2026-02-23 07:49 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 4/200 2026-02-23 06:46 by jsjzfl
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 5/250 2026-02-23 06:29 by w4l55oybr1
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 8/400 2026-02-23 06:24 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 3dfhjxgsh7 2026-02-22 6/300 2026-02-23 02:04 by 5jlh3qtdvx
[½Ìʦ֮¼Ò] °æÃæ·Ñ¸Ã½»Âð +7 Æ»¹ûÔÚÄÄÀï 2026-02-22 8/400 2026-02-22 22:37 by otani
[»ù½ðÉêÇë] ÃæÉÏ¿ÉÒÔ³¬¹ý30Ò³°É£¿ +4 °¢À­¹±aragon 2026-02-22 4/200 2026-02-22 21:22 by ɽÎ÷Ðü¿ÕË¿ÕÐüÎ
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 usprnugpzw 2026-02-21 6/300 2026-02-22 19:48 by w89i99eaeh
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 3dfhjxgsh7 2026-02-22 4/200 2026-02-22 16:52 by khieu8v8m0
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 usprnugpzw 2026-02-21 4/200 2026-02-22 16:27 by khieu8v8m0
[»ù½ðÉêÇë] ʲôÊÇÈËÒ»Éú×îÖØÒªµÄ£¿ +4 ˲ϢÓîÖæ 2026-02-21 4/200 2026-02-22 11:44 by huagongfeihu
[»ù½ðÉêÇë] ½ñÄê´ºÍíÓм¸¸ö½ÚÄ¿ºÜ²»´í£¬µãÔÞ£¡ +11 ˲ϢÓîÖæ 2026-02-16 12/600 2026-02-21 21:14 by lq493392203
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û