ÄúËùÔÚλÖãºÂÛ̳Ê×Ò³ ¡ª Visual Basic ¡ª º¬Ð¦²»ÓÒìÐÍ´°Ìå´úÂëÖð¾äÏê½â,Çë¸ßÊÖÖ¸½ÌµãÆÀ,²ËÄñ·ÖÏí ±¾ÌûµØÖ·£º http://bbs.pfan.cn/post-264548.html [¸´ÖƵØÖ·] [ËÑË÷Ïà¹ØÌû×Ó] |
|||||
|
|
|||||||
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
1
Â¥
×¢ÊÍ1: Option Explicit Óï¾ä ÓÃÓÚÔÚÎļþ¼¶(¼´Ò»¶ÎÍêÕûµÄ³ÌÐò´úÂëÖÐ)Ç¿ÖÆ¶Ô¸ÃÎļþÖеÄËùÓбäÁ¿½øÐÐÏÔʽÉùÃ÷¡£ Option Explicit { On | Off } On ¿ÉÑ¡¡£ÆôÓà Option Explicit ¼ì²é¡£Èç¹ûÔÚ Option Explicit Óï¾äºóûÓÐÖ¸¶¨ On »ò Off£¬ÔòĬÈÏΪ On¡£ Off ¿ÉÑ¡¡£½ûÓà Option Explicit ¼ì²é¡£ ±¸×¢ Èç¹ûʹÓã¬Ôò Option Explicit Óï¾ä±ØÐë³öÏÖÔÚÎļþÖÐÆäËûËùÓÐÔ´Óï¾ä֮ǰ¡£ µ± Option Explicit ³öÏÖÔÚÎļþÖÐʱ£¬±ØÐëʹÓà Dim¡¢Private¡¢Public »ò ReDim Óï¾äÏÔʽÉùÃ÷ËùÓбäÁ¿¡£ÊÔͼʹÓÃδÉùÃ÷µÄ±äÁ¿Ãû½«·¢Éú±àÒëʱ´íÎó¡£ Èç¹ûûÓÐʹÓà Option Explicit Óï¾ä£¬ÔòËùÓÐδÉùÃ÷µÄ±äÁ¿¶¼ÊÇ Object ÀàÐÍ¡£ ×¢Òâ ʹÓà Option Explicit ¿É±ÜÃâÆ´´íÏÖÓбäÁ¿µÄÃû³Æ£¬»ò±ÜÃâÔÚ±äÁ¿·¶Î§²»Çå³þµÄ´úÂëÖвúÉú»ìÏý¡£Èç¹û´úÂëÖÐûÓÐÖ¸¶¨ Option Explicit£¬±àÒëÆ÷µÄĬÈÏÉèÖý«ÊÇ Option Explicit On¡£ ²¹³ä:Ç¿ÖÆÉùÃ÷£¬ÒòΪVBµÄ±äÁ¿ÊÇ¿ÉÒÔ²»ÉùÃ÷¶øÖ±½ÓʹÓõ쬵«ÊÇÕâÑù¿ÉÄÜ»áÔì³ÉһЩĪÃûÆæÃîµÄÒþº¬´íÎ󣬻¹ºÜÄÑÅŲ飬ÓÃÁËÕâ¸öÓï¾äºóËùÓеıäÁ¿¶¼Òª×ñÑÏÈÉùÃ÷ºóÒýÓÃµÄ¹æ¾Ø£¬ÕâÑù¾Í±ÜÃâÁËһЩ²»±ØÒªµÄÂé·³£¬ÕâÊÇÒ»¸öÁ¼ºÃµÄ±àÂëϰ¹ß¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
2
Â¥
×¢ÊÍ2: Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
1). vb ÖÐdeclareµÄʹÓ÷½·¨ VBÀïµÄ˵Ã÷Óï¾ä£¨Declare£©£¬½öÖ§³Ö¶¯Ì¬Á´½á¿â£¨DLL£©µÄ×Ó³ÌÐòºÍÎÞ±äÁ¿º¯Êý¡£ VB³ÌÐòҪʹÓÃDLLÖеĺ¯Êý£¬Ê×ÏȱØÐëÒªÓÐÌØÊâµÄÉùÃ÷£¬ÓÃDeclareÉùÃ÷Óï¾äÔÚ´°Ìå¼¶»òÄ£¿é¼¶»òÈ«¾ÖÄ£¿éµÄ´úÂëÉùÃ÷¶Î½øÐÐÉùÃ÷£¬½«¶¯Ì¬Á´½Ó¿âÖеĺ¯ÊýÉùÃ÷µ½VBÖУ¬¹©VB³ÌÐòµ÷ÓᣠÓï¾ä¸ñʽΪ£ºDeclare Sub ¹ý³ÌÃûLib [ Alias " ±ðÃû]£¨[ByVal ²ÎÊýASÀàÐÍ]£©£¬»òΪDeclare Functionº¯ÊýÃûLib [Alias " ±ðÃû]£¨[ByVal ²ÎÊýASÀàÐÍ]£©ASÀàÐÍ ÔÚÉùÃ÷ÖÐÊ×ÏÈÓÃDeclare¹Ø¼ü×Ö±íʾÉùÃ÷DLLÖеĺ¯Êý¡£ 2).Funtion ¹ý³Ì Visual Basic °üº¬ÄÚÖõġ¢»òÄÚ²¿µÄº¯Êý£¬Èç Sqr¡¢Cos »ò Chr¡£´ËÍ⣬»¹¿ÉÓà Function Óï¾ä±àд×Ô¼ºµÄ Function ¹ý³Ì¡£ º¯Êý¹ý³ÌµÄÓï·¨ÊÇ£º Private |Public] [Static] Function procedurename (arguments) [As type] statements End Function Óë Sub ¹ý³ÌÒ»Ñù£¬Function ¹ý³ÌÒ²ÊÇÒ»¸ö¶ÀÁ¢µÄ¹ý³Ì£¬¿É¶ÁÈ¡²ÎÊý¡¢Ö´ÐÐһϵÁÐÓï¾ä²¢¸Ä±äÆä²ÎÊýµÄÖµ¡£Óë×Ó¹ý³Ì²»Í¬£¬Function ¹ý³Ì¿É·µ»ØÒ»¸öÖµµ½µ÷ÓõĹý³Ì¡£ÔÚSub ¹ý³ÌÓëFunction ¹ý³ÌÖ®¼äÓÐÈýµãÇø±ð£º 1.Ò»°ã˵À´£¬ÈýϴóµÄÓï¾ä»ò±í´ïʽµÄÓұ߰üº¬function¹ý³ÌÃûºÍ²ÎÊý (returnvalue = function)£¬Õâ¾Íµ÷ÓÃÁËfunctionº¯Êý¡£ 2.function¹ý³ÌÓë±äÁ¿ÍêȫһÑù£¬º¯Êý¹ý³ÌÓÐÊý¾ÝÀàÐÍ¡£Õâ¾Í¾ö¶¨ÁË·µ»ØÖµµÄÀàÐÍ¡££¨Èç¹ûûÓÐ As ×Ӿ䣬ȱʡµÄÊý¾ÝÀàÐÍΪ Variant¡££© 3.¸øprocedurename(Function ¹ý³ÌÃû)×ÔÉí¸³Ò»¸öÖµ£¬¾Í¿É·µ»ØÕâ¸öÖµ¡£Function ¹ý³Ì·µ»ØÒ»¸öֵʱ£¬¸ÃÖµ¿É³ÉΪ½Ï´ó±í´ïʽµÄÒ»²¿·Ö¡£ ÀýÈ磬ÏÂÃæÊÇÒÑÖªÖ±½ÇÈý½ÇÐÎÁ½Ö±½Ç±ßµÄÖµ£¬¼ÆËãµÚÈý±ß£¨Ð±±ß£©µÄº¯Êý£º Function Hypotenuse (A As Integer, B As Integer) As String Hypotenuse = Sqr (A ^ 2 + B ^ 2) End Function ÔÚ Visual Basic Öе÷Óà Function ¹ý³ÌµÄ·½·¨ºÍµ÷ÓÃÈκÎÄÚ²¿º¯ÊýµÄ·½·¨ÊÇÒ»ÑùµÄ sub Ö´ÐÐÍê³ÌÐò´úÂëºó¾ÍÖ±½Ó·µ»ØÁË,²»»á´ø»ØÊýÖµ¡£¶øfunctionÖ´ÐÐÍê´úÂëºó¿ÉÒÔ·µ»ØÒ»¸öÖµ£¬ÓÃÀ´·µ»ØÒ»¸ö¼ÆËã½á¹ûµÈÊý×Ö¡£ ÀýÈ磺 function sum(a,b) sum=a+n end function ¿ÉÒÔµ÷ÓÃΪ£º a=1 b=2 c=sum(a,b) ÔËÐкóc=3 ¶øsubÔò²»ÄÜÓá°±äÁ¿=³ÌÐòÃû ¡±À´µ÷Óᣠ²¹³ä£º Sub ¹ý³Ì ×Ó¹ý³ÌÊÇÔÚÏìӦʼþʱִÐеĴúÂë¿é¡£½«Ä£¿éÖеĴúÂë·Ö³É×Ó¹ý³Ìºó£¬ÔÚÓ¦ÓóÌÐòÖвéÕÒºÍÐ޸ĴúÂë±äµÃ¸üÈÝÒ×ÁË¡£ ×Ó¹ý³ÌµÄÓï·¨ÊÇ£º [Private|Public][Static]Sub procedurename (arguments) statements End Sub ÿ´Îµ÷Óùý³Ì¶¼»áÖ´ÐÐ Sub ºÍ End Sub Ö®¼äµÄ statements¡£¿ÉÒÔ½«×Ó¹ý³Ì·ÅÈë±ê׼ģ¿é¡¢ÀàÄ£¿éºÍ´°ÌåÄ£¿éÖС£°´ÕÕȱʡ¹æ¶¨£¬ËùÓÐÄ£¿éÖеÄ×Ó¹ý³ÌΪ Public£¨¹«Óõģ©£¬ÕâÒâζ×ÅÔÚÓ¦ÓóÌÐòÖпÉËæ´¦µ÷ÓÃËüÃÇ¡£ ¹ý³ÌµÄ arguments ÀàËÆÓÚ±äÁ¿ÉùÃ÷£¬ËüÉùÃ÷ÁË´Óµ÷Óùý³Ì´«µÝ½øÀ´µÄÖµ¡£ ÔÚ Visual Basic ÖÐÓ¦Çø·ÖͨÓùý³ÌºÍʼþ¹ý³ÌÕâÁ½Àà×Ó¹ý³Ì¡£ 1.ͨÓùý³Ì ͨÓùý³Ì¸æËßÓ¦ÓóÌÐòÈçºÎÍê³ÉÒ»ÏîÖ¸¶¨µÄÈÎÎñ¡£Ò»µ©È·¶¨ÁËͨÓùý³Ì£¬¾Í±ØÐëרÓÉÓ¦ÓóÌÐòÀ´µ÷Ó᣷´Ö®£¬Ö±µ½ÎªÏìÓ¦Óû§Òý·¢µÄʼþ»òϵͳÒý·¢µÄʼþ¶øµ÷ÓÃʼþ¹ý³Ìʱ£¬Ê¼þ¹ý³Ìͨ³£×ÜÊÇ´¦ÓÚ¿ÕÏÐ״̬¡£ ΪʲôҪ½¨Á¢Í¨Óùý³ÌÄØ£¿ÀíÓÉÖ®Ò»¾ÍÊÇ£¬¼¸¸ö²»Í¬µÄʼþ¹ý³ÌÒ²ÐíÒªÖ´ÐÐͬÑùµÄ¶¯×÷¡£½«¹«¹²Óï¾ä·ÅÈëÒ»·ÖÀ뿪µÄ¹ý³Ì£¨Í¨Óùý³Ì£©²¢ÓÉʼþ¹ý³ÌÀ´µ÷ÓÃËü£¬³ÏΪ±à³ÌÉϲߡ£ÕâÑùÒ»À´¾Í²»±ØÖظ´´úÂ룬ҲÈÝÒ×ά»¤Ó¦ÓóÌÐò¡£ÀýÈ磬VCR ʾÀýÓ¦ÓóÌÐòʹÓÃÁËÒ»¸öͨÓùý³Ì£¬¼¸¸ö²»Í¬¹ö¶¯°´Å¥µÄ Click ʼþ¶¼µ÷ÓÃÕâ¸öͨÓùý³Ì¡£Í¼ 5.7 ˵Ã÷ÁËͨÓùý³ÌµÄʹÓá£Click ʼþÖеĴúÂëµ÷Óð´Å¥¹ÜÀíÆ÷µÄ×Ó¹ý³Ì£¬×Ó¹ý³ÌÔËÐÐ×ÔÉíµÄ´úÂ룬Ȼºó½«¿ØÖÆ·µ»Øµ½ Click ʼþ¹ý³Ì¡£ 2.ʼþ¹ý³Ì µ± Visual Basic ÖеĶÔÏó¶ÔÒ»¸öʼþµÄ·¢Éú×÷³öÈ϶¨Ê±£¬±ã×Ô¶¯ÓÃÏàÓ¦ÓÚʼþµÄÃû×Öµ÷ÓøÃʼþµÄ¹ý³Ì¡£ÒòΪÃû×ÖÔÚ¶ÔÏóºÍ´úÂëÖ®¼ä½¨Á¢ÁËÁªÏµ£¬ËùÒÔ˵ʼþ¹ý³ÌÊǸ½¼ÓÔÚ´°ÌåºÍ¿Ø¼þÉϵġ£ Ò»¸ö¿Ø¼þµÄʼþ¹ý³Ì½«¿Ø¼þµÄ£¨ÔÚ Name ÊôÐÔÖй涨µÄ£©Êµ¼ÊÃû×Ö¡¢Ï»®Ïß (_) ºÍʼþÃû×éºÏÆðÀ´¡£ÀýÈ磬Èç¹ûÏ£ÍûÔÚµ¥»÷ÁËÒ»¸öÃûΪ cmdPlay µÄÃüÁî°´Å¥Ö®ºó£¬Õâ¸ö°´Å¥»áµ÷ÓÃʼþ¹ý³Ì£¬ÔòҪʹÓà cmdPlay_Click ¹ý³Ì¡£ Ò»¸ö´°Ìåʼþ¹ý³Ì½«´Ê»ã "Form"¡¢Ï»®ÏߺÍʼþÃû×éºÏÆðÀ´¡£Èç¹ûÏ£ÍûÔÚµ¥»÷´°ÌåÖ®ºó£¬´°Ìå»áµ÷ÓÃʼþ¹ý³Ì£¬ÔòҪʹÓà Form_Click ¹ý³Ì¡££¨ºÍ¿Ø¼þÒ»Ñù£¬´°ÌåÒ²ÓÐΨһµÄÃû×Ö£¬µ«²»ÄÜÔÚʼþ¹ý³ÌµÄÃû×ÖÖÐʹÓÃÕâЩÃû×Ö¡££©Èç¹ûÕýÔÚʹÓà MDI ´°Ì壬Ôòʼþ¹ý³Ì½«´Ê»ã " MDIForm " ¡¢Ï»®ÏߺÍʼþÃû×éºÏÆðÀ´£¬Èç MDIForm_Load¡£ ËùÓеÄʼþ¹ý³ÌʹÓÃÏàͬµÄÓï·¨¡£ ¿Ø¼þʼþµÄÓï·¨ ´°ÌåʼþµÄÓï·¨ Private Sub controlname_eventname (arguments ) statements End Sub Private Sub Form_eventname (arguments) statements End Sub ËäÈ»¿ÉÒÔ×Ô¼º±àдʼþ¹ý³Ì£¬µ«Ê¹Óà Visual Basic ÌṩµÄ´úÂë¹ý³Ì»á¸ü·½±ã£¬Õâ¸ö¹ý³Ì×Ô¶¯½«ÕýÈ·µÄ¹ý³ÌÃû°üÀ¨½øÀ´¡£´Ó¡°¶ÔÏó¿ò¡±ÖÐÑ¡ÔñÒ»¸ö¶ÔÏ󣬴ӡ°¹ý³Ì¿ò¡±ÖÐÑ¡ÔñÒ»¸ö¹ý³Ì£¬¾Í¿ÉÔÚ¡°´úÂë±à¼Æ÷¡± ´°¿ÚÑ¡ÔñÒ»¸öÄ£°å¡£ ÔÚ¿ªÊ¼Îª¿Ø¼þ±àдʼþ¹ý³Ì֮ǰÏÈÉèÖÿؼþµÄ Name ÊôÐÔ£¬ÕⲻʧΪһ¸öºÃÖ÷Òâ¡£Èç¹û¶Ô¿Ø¼þ¸½¼ÓÒ»¸ö¹ý³ÌÖ®ºóÓÖ¸ü¸Ä¿Ø¼þµÄÃû×Ö£¬ÄÇôҲ±ØÐë¸ü¸Ä¹ý³ÌµÄÃû×Ö£¬ÒÔ·ûºÏ¿Ø¼þµÄÐÂÃû×Ö¡£·ñÔò£¬Visual Basic ÎÞ·¨Ê¹¿Ø¼þºÍ¹ý³ÌÏà·û¡£¹ý³ÌÃûÓë¿Ø¼þÃû²»·ûʱ£¬¹ý³Ì¾Í³ÉΪͨÓùý³Ì¡£ ****×î×î¸ù±¾µÄÇø±ð²»ÊÇsubûÓзµ»ØÖµ£¬¶øfunctionÓС£ ¶øÊÇ subµ÷Óã¬Ã»ÓжÑÕ»µÄ¿ªÏú¡£¶øfunctionÈ´ÓÐ subµ÷Ó㬵÷ÓÃǰ£¬²»ÓÃѹÈëÕ»£¬Í˳öºóÒ²²»Óõ¯³öÕ» ¶øfunctionÔò²»È»
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
3
Â¥
²¹³ä£ºÊ²Ã´ÊǶÑÕ» ÔÚ¼ÆËã»úÁìÓò£¬¶ÑÕ»ÊÇÒ»¸ö²»ÈݺöÊӵĸÅÄµ«ÊǺܶàÈËÉõÖÁÊǼÆËã»úרҵµÄÈËҲûÓÐÃ÷È·¶ÑÕ»ÆäʵÊÇÁ½ÖÖÊý¾Ý½á¹¹¡£ Òªµã£º ¶Ñ£ºË³ÐòËæÒâ Õ»£ºÏȽøºó³ö ¶ÑºÍÕ»µÄÇø±ð Ò»¡¢Ô¤±¸ÖªÊ¶¡ª³ÌÐòµÄÄÚ´æ·ÖÅä Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö 1¡¢Õ»Çø£¨stack£©¡ª ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£ 2¡¢¶ÑÇø£¨heap£© ¡ª Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀàËÆÓÚÁ´±í¡£ 3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©¡ª£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£ - ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å¡£ 4¡¢ÎÄ×Ö³£Á¿Çø ¡ª³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å ¡£ 5¡¢³ÌÐò´úÂëÇø¡ª´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£ ¶þ¡¢Àý×Ó³ÌÐò ÕâÊÇÒ»¸öǰ±²Ð´µÄ£¬·Ç³£Ïêϸ //main.cpp int a = 0; È«¾Ö³õʼ»¯Çø char *p1; È«¾Öδ³õʼ»¯Çø main() { int b; Õ» char s[] = "abc"; Õ» char *p2; Õ» char *p3 = "123456"; 123456\0ÔÚ³£Á¿Çø£¬p3ÔÚÕ»ÉÏ¡£ static int c =0£» È«¾Ö£¨¾²Ì¬£©³õʼ»¯Çø p1 = (char *)malloc(10); p2 = (char *)malloc(20); } ·ÖÅäµÃÀ´µÃ10ºÍ20×Ö½ÚµÄÇøÓò¾ÍÔÚ¶ÑÇø¡£ strcpy(p1, "123456"); 123456\0·ÅÔÚ³£Á¿Çø£¬±àÒëÆ÷¿ÉÄܻὫËüÓëp3ËùÖ¸ÏòµÄ"123456"ÓÅ»¯³ÉÒ»¸öµØ·½¡£ ¶ÑºÍÕ»µÄÀíÂÛ֪ʶ 1.ÉêÇ뷽ʽ stack: ÓÉϵͳ×Ô¶¯·ÖÅä¡£ ÀýÈ磬ÉùÃ÷ÔÚº¯ÊýÖÐÒ»¸ö¾Ö²¿±äÁ¿ int b; ϵͳ×Ô¶¯ÔÚÕ»ÖÐΪb¿ª±Ù¿Õ¼ä heap: ÐèÒª³ÌÐòÔ±×Ô¼ºÉêÇ룬²¢Ö¸Ã÷´óС£¬ÔÚcÖÐmallocº¯Êý Èçp1 = (char *)malloc(10); ÔÚC++ÖÐÓÃnewÔËËã·û Èçp2 = (char *)malloc(10); µ«ÊÇ×¢Òâp1¡¢p2±¾ÉíÊÇÔÚÕ»Öеġ£ 2.ÉêÇëºóϵͳµÄÏìÓ¦ Õ»£ºÖ»ÒªÕ»µÄÊ£Óà¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼ä£¬ÏµÍ³½«Îª³ÌÐòÌṩÄڴ棬·ñÔò½«±¨Òì³£ÌáʾջÒç³ö¡£ ¶Ñ£ºÊ×ÏÈÓ¦¸ÃÖªµÀ²Ù×÷ϵͳÓÐÒ»¸ö¼Ç¼¿ÕÏÐÄÚ´æµØÖ·µÄÁ´±í£¬µ±ÏµÍ³ÊÕµ½³ÌÐòµÄÉêÇëʱ£¬»á±éÀú¸ÃÁ´±í£¬Ñ°ÕÒµÚÒ»¸ö¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼äµÄ¶Ñ½áµã£¬È»ºó½«¸Ã½áµã´Ó¿ÕÏнáµãÁ´±íÖÐɾ³ý£¬²¢½«¸Ã½áµãµÄ¿Õ¼ä·ÖÅ䏸³ÌÐò£¬ÁíÍ⣬¶ÔÓÚ´ó¶àÊýϵͳ£¬»áÔÚÕâ¿éÄÚ´æ¿Õ¼äÖеÄÊ×µØÖ·´¦¼Ç¼±¾´Î·ÖÅäµÄ´óС£¬ÕâÑù£¬´úÂëÖеÄdeleteÓï¾ä²ÅÄÜÕýÈ·µÄÊͷű¾ÄÚ´æ¿Õ¼ä¡£ÁíÍ⣬ÓÉÓÚÕÒµ½µÄ¶Ñ½áµãµÄ´óС²»Ò»¶¨ÕýºÃµÈÓÚÉêÇëµÄ´óС£¬ÏµÍ³»á×Ô¶¯µÄ½«¶àÓàµÄÄDz¿·ÖÖØÐ·ÅÈë¿ÕÏÐÁ´±íÖС£ 3.ÉêÇë´óСµÄÏÞÖÆ Õ»£ºÔÚWindowsÏÂ,Õ»ÊÇÏòµÍµØÖ·À©Õ¹µÄÊý¾Ý½á¹¹£¬ÊÇÒ»¿éÁ¬ÐøµÄÄÚ´æµÄÇøÓò¡£Õâ¾ä»°µÄÒâ˼ÊÇÕ»¶¥µÄµØÖ·ºÍÕ»µÄ×î´óÈÝÁ¿ÊÇϵͳԤÏȹ涨ºÃµÄ£¬ÔÚ WINDOWSÏ£¬Õ»µÄ´óСÊÇ2M£¨Ò²ÓеÄ˵ÊÇ1M£¬×ÜÖ®ÊÇÒ»¸ö±àÒëʱ¾ÍÈ·¶¨µÄ³£Êý£©£¬Èç¹ûÉêÇëµÄ¿Õ¼ä³¬¹ýÕ»µÄÊ£Óà¿Õ¼äʱ£¬½«Ìáʾoverflow¡£Òò´Ë£¬ÄÜ´ÓÕ»»ñµÃµÄ¿Õ¼ä½ÏС¡£ ¶Ñ£º¶ÑÊÇÏò¸ßµØÖ·À©Õ¹µÄÊý¾Ý½á¹¹£¬ÊDz»Á¬ÐøµÄÄÚ´æÇøÓò¡£ÕâÊÇÓÉÓÚϵͳÊÇÓÃÁ´±íÀ´´æ´¢µÄ¿ÕÏÐÄÚ´æµØÖ·µÄ£¬×ÔÈ»ÊDz»Á¬ÐøµÄ£¬¶øÁ´±íµÄ±éÀú·½ÏòÊÇÓɵ͵ØÖ·Ïò¸ßµØÖ·¡£¶ÑµÄ´óСÊÜÏÞÓÚ¼ÆËã»úϵͳÖÐÓÐЧµÄÐéÄâÄÚ´æ¡£Óɴ˿ɼû£¬¶Ñ»ñµÃµÄ¿Õ¼ä±È½ÏÁé»î£¬Ò²±È½Ï´ó¡£ 4.ÉêÇëЧÂÊµÄ±È½Ï Õ»ÓÉϵͳ×Ô¶¯·ÖÅ䣬ËٶȽϿ졣µ«³ÌÐòÔ±ÊÇÎÞ·¨¿ØÖƵġ£ ¶ÑÊÇÓÉnew·ÖÅäµÄÄڴ棬һ°ãËٶȱȽÏÂý£¬¶øÇÒÈÝÒײúÉúÄÚ´æË鯬,²»¹ýÓÃÆðÀ´×î·½±ã. ÁíÍ⣬ÔÚWINDOWSÏ£¬×îºÃµÄ·½Ê½ÊÇÓÃVirtualAlloc·ÖÅäÄڴ棬Ëû²»ÊÇÔÚ¶Ñ£¬Ò²²»ÊÇÔÚÕ»,¶øÊÇÖ±½ÓÔÚ½ø³ÌµÄµØÖ·¿Õ¼äÖб£ÁôÒ»¿ìÄڴ棬ËäÈ»ÓÃÆðÀ´×î²»·½±ã¡£µ«ÊÇËٶȿ죬Ҳ×îÁé»î 5.¶ÑºÍÕ»ÖеĴ洢ÄÚÈÝ Õ»£º ÔÚº¯Êýµ÷ÓÃʱ£¬µÚÒ»¸ö½øÕ»µÄÊÇÖ÷º¯ÊýÖк¯Êýµ÷ÓúóµÄÏÂÒ»ÌõÖ¸Áº¯Êýµ÷ÓÃÓï¾äµÄÏÂÒ»Ìõ¿ÉÖ´ÐÐÓï¾ä£©µÄµØÖ·£¬È»ºóÊǺ¯ÊýµÄ¸÷¸ö²ÎÊý£¬ÔÚ´ó¶àÊýµÄC±àÒëÆ÷ÖУ¬²ÎÊýÊÇÓÉÓÒÍù×óÈëÕ»µÄ£¬È»ºóÊǺ¯ÊýÖеľֲ¿±äÁ¿¡£×¢Ò⾲̬±äÁ¿ÊDz»ÈëÕ»µÄ¡£ µ±±¾´Îº¯Êýµ÷ÓýáÊøºó£¬¾Ö²¿±äÁ¿ÏȳöÕ»£¬È»ºóÊDzÎÊý£¬×îºóÕ»¶¥Ö¸ÕëÖ¸Ïò×ʼ´æµÄµØÖ·£¬Ò²¾ÍÊÇÖ÷º¯ÊýÖеÄÏÂÒ»ÌõÖ¸Á³ÌÐòÓɸõã¼ÌÐøÔËÐС£ ¶Ñ£ºÒ»°ãÊÇÔڶѵÄÍ·²¿ÓÃÒ»¸ö×Ö½Ú´æ·Å¶ÑµÄ´óС¡£¶ÑÖеľßÌåÄÚÈÝÓгÌÐòÔ±°²ÅÅ¡£ 6.´æÈ¡Ð§ÂÊµÄ±È½Ï char s1[] = "aaaaaaaaaaaaaaa"; char *s2 = "bbbbbbbbbbbbbbbbb"; aaaaaaaaaaaÊÇÔÚÔËÐÐʱ¿Ì¸³ÖµµÄ£» ¶øbbbbbbbbbbbÊÇÔÚ±àÒëʱ¾ÍÈ·¶¨µÄ£» µ«ÊÇ£¬ÔÚÒÔºóµÄ´æÈ¡ÖУ¬ÔÚÕ»ÉϵÄÊý×é±ÈÖ¸ÕëËùÖ¸ÏòµÄ×Ö·û´®(ÀýÈç¶Ñ)¿ì¡£ ±ÈÈ磺 #include void main() { char a = 1; char c[] = "1234567890"; char *p ="1234567890"; a = c[1]; a = p[1]; return; } ¶ÔÓ¦µÄ»ã±à´úÂë 10: a = c[1]; 00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh] 0040106A 88 4D FC mov byte ptr [ebp-4],cl 11: a = p[1]; 0040106D 8B 55 EC mov edx,dword ptr [ebp-14h] 00401070 8A 42 01 mov al,byte ptr [edx+1] 00401073 88 45 FC mov byte ptr [ebp-4],al µÚÒ»ÖÖÔÚ¶Áȡʱֱ½Ó¾Í°Ñ×Ö·û´®ÖеÄÔªËØ¶Áµ½¼Ä´æÆ÷clÖУ¬¶øµÚ¶þÖÖÔòÒªÏȰÑÖ¸ÕëÖµ¶Áµ½edxÖУ¬ÔÚ¸ù¾Ýedx¶ÁÈ¡×Ö·û£¬ÏÔÈ»ÂýÁË¡£ 7.С½á£º ¶ÑºÍÕ»µÄÇø±ð¿ÉÒÔÓÃÈçϵıÈÓ÷À´¿´³ö£º ʹÓÃÕ»¾ÍÏóÎÒÃÇÈ¥·¹¹ÝÀï³Ô·¹£¬Ö»¹Üµã²Ë£¨·¢³öÉêÇ룩¡¢¸¶Ç®¡¢ºÍ³Ô£¨Ê¹Óã©£¬³Ô±¥Á˾Í×ߣ¬²»±ØÀí»áÇвˡ¢Ï´²ËµÈ×¼±¸¹¤×÷ºÍÏ´Í롢ˢ¹øµÈɨβ¹¤×÷£¬ËûµÄºÃ´¦ÊÇ¿ì½Ý£¬µ«ÊÇ×ÔÓɶÈС¡£ ʹÓöѾÍÏóÊÇ×Ô¼º¶¯ÊÖ×öϲ»¶³ÔµÄ²ËëÈ£¬±È½ÏÂé·³£¬µ«ÊDZȽϷûºÏ×Ô¼ºµÄ¿Ú棬¶øÇÒ×ÔÓÉ¶È´ó¡£ ¶ÑºÍÕ»µÄÇø±ðÖ÷Òª·Ö£º ²Ù×÷ϵͳ·½ÃæµÄ¶ÑºÍÕ»£¬ÈçÉÏÃæËµµÄÄÇЩ£¬²»¶à˵ÁË¡£ »¹ÓоÍÊÇÊý¾Ý½á¹¹·½ÃæµÄ¶ÑºÍÕ»£¬ÕâЩ¶¼ÊDz»Í¬µÄ¸ÅÄî¡£ÕâÀïµÄ¶Ñʵ¼ÊÉÏÖ¸µÄ¾ÍÊÇ£¨Âú×ã¶ÑÐÔÖʵģ©ÓÅÏȶÓÁеÄÒ»ÖÖÊý¾Ý½á¹¹£¬µÚ1¸öÔªËØÓÐ×î¸ßµÄÓÅÏÈȨ£»Õ»Êµ¼ÊÉϾÍÊÇÂú×ãÏȽøºó³öµÄÐÔÖʵÄÊýѧ»òÊý¾Ý½á¹¹¡£ ËäÈ»¶ÑÕ»£¬¶ÑÕ»µÄ˵·¨ÊÇÁ¬ÆðÀ´½Ð£¬µ«ÊÇËûÃÇ»¹ÊÇÓкܴóÇø±ðµÄ£¬Á¬×ŽÐÖ»ÊÇÓÉÓÚÀúÊ·µÄÔÒò¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
4
Â¥
3).CreateRectRgn VBÉùÃ÷
'´´½¨Ò»¸ö¾ØÐÎÇøÓò Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long ˵Ã÷ ´´½¨Ò»¸öÓɵãX1£¬Y1ºÍX2£¬Y2ÃèÊöµÄ¾ØÐÎÇøÓò ·µ»ØÖµ Long£¬Ö´Ðгɹ¦ÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪÁã ²ÎÊý±í ²ÎÊý ÀàÐÍ ËµÃ÷ X1,Y1 Long£¬ ¾ØÐÎ×óÉϽÇX£¬Y×ø±ê X2,Y2 Long£¬ ¾ØÐÎÓÒϽÇX£¬Y×ø±ê ×¢½â ²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ý¸ÃÇøÓò Õâ¸ö¾ØÐεÄϱߺÍÓұ߲»°üº¬ÔÚÇøÓòÖ®ÄÚ CreateRectRgn()µÄ×÷ÓÃÊÇ´´½¨Ò»¸ö¾ØÐÎÇøÓò,ÒÔÄã´«Èë²ÎÊýµÄ¾ØÐÎλÖô´½¨Ò»¸öÇøÓò¶ÔÏó CreateRectRgn()ÓÃÀ´´´½¨Ò»¸ö¡°¼ô²ÃÇøÓò¡±£»ÖÁÓÚ¼ô²ÃÇøÓò£¬ËüÊǶÔÏÔʾÆ÷ÉÏÒ»¸ö·¶Î§µÄÃèÊö£¬Õâ¸ö·¶Î§ÊǾØÐΡ¢¶à±ßÐκÍÍÖÔ²µÄ×éºÏ¡£¼ô²ÃÇøÓòÒ»°ãÓÃÀ´»æÖƺͼô²Ã£¬Í¨¹ý½«¼ô²ÃÇøÓòÑ¡½øÉ豸ÉÏÏÂÎÄ£¬¾Í¿ÉÒÔÓüô²ÃÇøÓòÀ´½øÐмô²Ã£¨¾ÍÊÇ˵£¬½«¿ÉÒÔ»æÍ¼µÄ·¶Î§ÏÞÖÆÎªÏÔÊ¾ÇøÓòµÄÒ»²¿·Ö£©¡£ËüÊÇGDI¶ÔÏó¡£ÔÚGDIÖе±º¯ÊýÃû³ÆÖаüº¬Rgn×Ö·ûʱ£¬Ò»°ã±íʾ´Ëº¯ÊýÓë¼ô²ÃÇøÓòÓйء£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
5
Â¥
4).¹ØÓÚLIBºÍDLL
dll ÊÇ ±àÒëºó Éú³ÉµÄ ¶¯Ì¬Á¬½Ó¿â, ¶ø lib ÊÇÔÚ ³ÌÐò±àÒëʱ »áÓõ½µÄ Àà¿âÎļþ 1.ʲôÊǶ¯Ì¬Á´½Ó¿â£¿ DLLÊÇDynamic Link Library µÄËõдÐÎʽ£¬¶¯Ì¬Á´½Ó¿â (DLL) ÊÇ×÷Ϊ¹²Ïíº¯Êý¿âµÄ¿ÉÖ´ÐÐÎļþ¡£¶¯Ì¬Á´½ÓÌṩÁËÒ»ÖÖ·½·¨£¬Ê¹½ø³Ì¿ÉÒÔµ÷Óò»ÊôÓÚÆä¿ÉÖ´ÐдúÂëµÄº¯Êý¡£º¯ÊýµÄ¿ÉÖ´ÐдúÂëλÓÚÒ»¸ö DLL ÖУ¬¸Ã DLL °üº¬Ò»¸ö»ò¶à¸öÒѱ»±àÒë¡¢Á´½Ó²¢ÓëʹÓÃËüÃǵĽø³Ì·Ö¿ª´æ´¢µÄº¯Êý¡£DLL »¹ÓÐÖúÓÚ¹²ÏíÊý¾ÝºÍ×ÊÔ´¡£¶à¸öÓ¦ÓóÌÐò¿Éͬʱ·ÃÎÊÄÚ´æÖе¥¸ö DLL ¸±±¾µÄÄÚÈÝ¡£ ¶¯Ì¬Á´½Ó¿âÊÇÒ»¸öÄܹ»±»Ó¦ÓóÌÐòºÍÆäËüµÄDLLµ÷ÓõĹý³ÌºÍº¯ÊýµÄ¼¯ºÏÌå,ËüÀïÃæ°üº¬µÄÊǹ«¹²´úÂë»ò×ÊÔ´¡£ÓÉÓÚDLL´úÂëʹÓÃÁËÄÚ´æ¹²Ïí¼¼Êõ,ÔÚijЩµØ·½windowsÒ²¸øÁËDLLһЩ¸ü¸ßµÄȨÏÞ,Òò¶øDLLÖпÉÒÔʵÏÖһЩһ°ã³ÌÐòËù²»ÄÜʵÏֵŦÄÜ,ÈçʵÏÖwindowsµÄHOOK¡¢ISAPIµÈ¡£ ͬʱ,DLL»¹Îª²»Í¬ÓïÑÔ¼ä´úÂë¹²ÏíÌṩÁËÒ»Ìõ·½±ãµÄ;¾¶¡£Òò¶øDLLÔÚ±à³ÌʱӦÓýÏΪ¹ã·º,±¾ÎĽ«½éÉÜÈçºÎÔÚ Delphi Öн¨Á¢ºÍʹÓÃDLL¡£ Ò»£®DLL ¿âÄÚ´æ¹²Ïí»úÖÆ ´ÓʹÓÃЧ¹û¿´,DLLºÍunit ºÜÏñ,ËüÃǶ¼¿ÉÒÔ±»±ðµÄ¹¤³ÌÄ£¿éËùµ÷ÓÃ,µ«¶þÕßÔÚÄÚ²¿µÄʵÏÖ»úÖÆÉÏÈ·´æÔÚ×Ųî±ð¡£Èç¹ûÒ»¸ö³ÌÐòÄ£¿éÖÐÓÃusesÓï¾äÒýÓÃÁËij¸öunit,±àÒë³ÌÐòÔÚ±àÒë¸ÃÄ£¿éʱ,±ã»áÁ¬Í¬unitÒ»Æð±àÒë,²¢°Ñ±àÒëºóµÄ¿ÉÖ´ÐдúÂëÁ´½Óµ½±¾³ÌÐòÄ£¿éÖÐ,Õâ¾ÍÊÇÒ»¸ö³ÌÐòÄ£¿éÄܹ»µ÷ÓÃËùÒýÓÃunitÖйý³ÌºÍº¯ÊýµÄÔÒò¡£ µ±Í¬Ò»¸öunit±»¶à¸ö¹¤³ÌËùÒýÓÃʱ,Ôòÿ¸ö¹¤³ÌÖж¼º¬ÓиÃunitµÄ¿ÉÖ´ÐдúÂë,µ±º¬ÓиÃunitµÄ¶à¸ö¹¤³ÌͬʱִÐÐʱ,unitµÄ¿ÉÖ´ÐдúÂë»áËæ²»Í¬¹¤³Ì¶ø¶à´Î±»µ÷ÈëÄÚ´æ,Ôì³ÉÄÚ´æ×ÊÔ´µÄÀË·Ñ¡£DLLÔò²»Í¬,Ëü¼´Ê¹±»Ä³¸ö¹¤³Ìµ÷ÓÃ,±àÒëºóÈÔÊǶÀÁ¢µÄ¡£ Ò²¾ÍÊÇ˵±àÒëºó,Ò»¸öDLL¿âÐγÉÒ»¸öµ¥¶ÀµÄ¿ÉÖ´ÐÐÎļþ,¶ø²»ÓëÈÎºÎÆäËüµÄ¿ÉÖ´ÐÐÎļþÁ¬½ÓÔÚÒ»Æð,Òò¶øDLL¿â²¢²»´ÓÊôÓÚij¸öÌØ¶¨µÄ¹¤³Ì,µ±¶à¸ö¹¤³Ìµ÷ÓÃͬһ¸öDLL¿âʱֻÓеÚÒ»¸ö¹¤³Ì°ÑDLL¿âµ÷ÈëÄÚ´æ,ÆäÓ๤³Ì²¢²»Öظ´µ÷Èëͬһ¸öDLL¿âµ½ÄÚ´æ,¶øÊǵ½Í¬Ò»¸ö¹²ÏíÄÚ´æÇø¶ÁÈ¡¡£²¢ÇÒ,DLLµÄÖ´ÐдúÂëÊÇÔÚ³ÌÐòÔËÐÐÆÚ¼ä¶¯Ì¬µ÷ÈëµÄ,¶ø²»ÊÇÈçunitÔÚ³ÌÐòÔËÐÐʱ¾ÍÓëÕû¸ö¹¤³ÌÒ»Æðµ÷ÈëÄÚ´æ¡£ÕâÑù±ã¿ÉÏû³ýunit´øÀ´µÄÏàͬ´úÂë¶à´¦Õ¼ÓÃÄÚ´æµÄ±×²¡¡£ ¶þ DelphiÖÐDLL¿âµÄ½¨Á¢ ÔÚDelphi»·¾³ÖÐ,±àдһ¸öDLLͬ±àдһ¸öÒ»°ãµÄÓ¦ÓóÌÐò²¢Ã»ÓÐÌ«´óµÄÇø±ð¡£ÊÂʵÉÏ×÷ΪDLLÖ÷ÌåµÄDLLº¯ÊýµÄ±àд,³ýÁËÔÚÄÚ´æ¡¢×ÊÔ´µÄ¹ÜÀíÉÏÓÐËù²»Í¬Íâ,²¢²»ÐèÒªÆäËüÌØ±ðµÄÊֶΡ£ Ò»°ã¹¤³ÌÎļþµÄ¸ñʽΪ: program ¹¤³Ì±êÌâ; uses ×Ó¾ä; ³ÌÐòÌå ¶øDLLs¹¤³ÌÎļþµÄ¸ñʽΪ: library ¹¤³Ì±êÌâ; uses ×Ó¾ä; exprots ×Ó¾ä; ÌÐòÌ? ËüÃÇÖ÷ÒªµÄÇø±ðÓÐÁ½µã: 1.Ò»°ã¹¤³ÌÎļþµÄÍ·±êÓÃprogram¹Ø¼ü×Ö,¶øDLL¹¤³ÌÎļþÍ·±êÓÃlibrary ¹Ø¼ü×Ö¡£²»Í¬µÄ¹Ø¼ü×Ö֪ͨ±àÒëÆ÷Éú³É²»Í¬µÄ¿ÉÖ´ÐÐÎļþ¡£ÓÃprogram¹Ø¼ü×ÖÉú³ÉµÄÊÇ.exeÎļþ,¶øÓÃlibrary¹Ø¼ü×ÖÉú³ÉµÄÊÇ.dllÎļþ; 2.¼ÙÈçDLLÒªÊä³ö¹©ÆäËüÓ¦ÓóÌÐòʹÓõĺ¯Êý»ò¹ý³Ì,Ôò±ØÐ뽫ÕâЩº¯Êý»ò¹ý³ÌÁÐÔÚexports×Ó¾äÖС£¶øÕâЩº¯Êý»ò¹ý³Ì±¾Éí±ØÐëÓÃexport±àÒëÖ¸Áî½øÐбàÒë¡£ ÔÚDelphiÖ÷²Ëµ¥file ÖÐÑ¡new...Ïî,ÔÚµ¯³öµÄ´°¿ÚÖÐË«»÷DLLͼ±ê,±ã»á×Ô¶¯¸ø³öDLLÔ´Ä£¿é¿ò¼Ü,ÈçÏÂ: Library project1; {...×¢ÊÍ...} uses SysUtils, Classes; begin end. ½ÓÏÂÀ´±ã¿ÉÔÚUSESºÍbeginÖ®¼ä¼ÓÈëÏëÔÚ¸ÃDLLÖÐʵÏֵĹý³ÌºÍº¯ÊýµÄ¶¨Òå,²¢ÓÃexportºÍexprots±£×Ö°ÑËüÃÇÒý³ö,ÒÔ±ã±ðµÄÄ£¿éÒýÓÃ,ÔÚbeginºÍendÖ®¼ä¼ÓÈë³õʼ»¯´úÂë,³õʼ»¯´úÂëÊÇÓÃÀ´¶ÔDLL±äÁ¿³õʼ»¯µÄ¡£Ó¦×¢Òâ,¼´±ãÎÞ³õʼ»¯´úÂëbeginÓëendÒ²²»¿ÉÊ¡ÂÔ,ÈçÏÂÀý: library minmax; function Min(X, Y: Integer): Integer; export; begin if X < Y then Min := X else Min := Y; end; function Max(X, Y: Integer): Integer; export; begin if X > Y then Max := X else Max := Y; end; exports Min index 1, Max index 2; begin end. ¾±àÒëºó,²¢ÒÔminmax.DLL´æÅ̺ó,Ò»¸öDLL¿âÎļþ±ãÐγÉÁË¡£ Èý DLL¿âµÄ·ÃÎÊ ·ÃÎÊDLL¿âÓÐÁ½ÖÖ·½Ê½,Ò»ÖÖÊǾ²Ì¬ÒýÓÃ,ÁíÒ»ÖÖÊǶ¯Ì¬ÒýÓᣠÓþ²Ì¬ÒýÓÃÕâÖÖ·½·¨×°ÈëDLLÒª×öÁ½¼þÊÂÇé:ΪDLL ¿â´´½¨Ò»¸öÊäÈëµ¥Ôª,ÒÔ¼°ÓÃUSES°ÑÊäÈëµ¥ÔªÁ¬½Óµ½ÒªÊ¹ÓÃDLL º¯ÊýµÄ³ÌÐòÄ£¿éÖС£ÎªDLL¿â´´½¨µÄÊäÈëµ¥ÔªÓëÆÕͨµÄµ¥ÔªµÄÇø±ð½öÔÚÓÚ:ÔÚËüµÄ½Ó¿Ú´¦ÉùÃ÷µÄ¹ý³Ì¡¢º¯Êý,²¢²»ÔÚËüµÄʵÏÖ²¿·Ö¸ø³öÕæÕýµÄʵÏÖ´úÂë,¶øÊÇÓÃexternal¹Ø¼ü×ְѹý³Ì¡¢º¯ÊýµÄʵÏÖϸ½ÚίÍиøÍⲿDLLÄ£¿é¡£ externalÃüÁîµÄʹÓÃÓï·¨ÈçÏÂ: procedure /function ¹ý³Ì/º¯ÊýÃû;external DLLÄ£¿éÃû; ÏÂÃæ¸ø³öΪÉÏÃæ´´½¨µÄminmax.DLL¿âдµÄÊäÈëµ¥ÔªÔ´Îļþtestdll .pas,´ÓÖпɿ´³öÊäÈëµ¥ÔªÓëÒ»°ãµ¥ÔªµÄһЩ²î±ð,´úÂëÈçÏÂËùʾ: unit testdll; interface uses function Min (X, Y: Integer): Integer; function Max (X, Y: Integer): Integer; implementation function Min; external ¡®minmax.DLL¡¯; function Max; external ¡®minmax.DLL¡¯; end. Ò»¸öÓ¦ÓóÌÐòÈôÏëµ÷ÓÃminmax.DLLÖеĺ¯Êý,Ö»ÐëÔÚÆäusesÓï¾äÖмÓÈëtestdll µ¥Ôª¼´¿É¡£ ¶¯Ì¬×°ÈëDLL,ÒªÓõ½WindowsµÄÈý¸öAPIº¯Êý¡£Loadlibrary¡¢FreelibraryºÍGetprocAddress ¡£ loadlibraryº¯ÊýÓÃÀ´×°ÈëDLL¿â,Æäµ÷ÓøñʽÈçÏÂ: function loadlobrary (DLLfileName:Pchar): THandle: µ±²»ÔÙÐèÒªÒ»¸öDLL¿âʱ,Ó¦µ÷ÓÃFreeLibraryº¯Êý½«ÆäÊÍ·Å,ÒÔ¿Õ³ö±¦¹óµÄÄÚ´æ×ÊÔ´,Æäµ÷ÓøñʽÈçÏÂ: procedure FreeLibrary (Libmodule:THandle) Libmodule ΪÓÉLoadLibraryµ÷Óõõ½µÄDLL¿â¾ä±ú¡£ÔÚÓÃloadlobrary º¯Êý×°Èëij¸öDLL¿âºÍµ÷ÓÃFreeLibraryÊͷŸÃDLL¿âÖ®¼äµÄ³ÌÐò¶ÎÖÐ, ¿ÉÒÔʹÓøÃDLL¿âÖеĹý³ÌºÍº¯Êý,¾ßÌåʹÓ÷½·¨ÊÇ:ÓÃGetprocAddressº¯Êý°ÑDLL¿âÖк¯ÊýµÄµØÖ·´«µÝ¸ø³ÌÐòÖÐij¸öº¯Êý±äÁ¿,ÔÙÓøñäÁ¿ÊµÏÖDLLº¯ÊýµÄµ÷Óá£GetprocAddressº¯ÊýÉùÃûÈçÏ function GetprocAddress (Libmodule:THandle:procname:pchar):TFarProc: ÈçÏÂÀýËùʾ: type TTimeRec = record Second: Integer; Minute: Integer; Hour: Integer; end; TGetTime = procedure(var Time: TTimeRec); THandle = Integer; var Time: TTimeRec; Handle: THandle; GetTime: TGetTime; ... begin Handle := LoadLibrary('DATETIME.DLL'); if Handle <> 0 then begin @GetTime := GetProcAddress(Handle, 'GetTime'); if @GetTime <> nil then begin GetTime(Time); with Time do WriteLn('The time is ', Hour, ':', Minute, ':', Second); end; FreeLibrary(Handle); end; end; ÔÚµ÷Óö¯Ì¬Á´½Ó¿âʱӦעÒâ, ËùÐ趯̬Á´½Ó¿âÐëÓëÓ¦ÓóÌÐòÔÚͬһĿ¼»òWindows System Ŀ¼Ï¡£ ¶¯Ì¬Á´½Ó¿âÊÇ WindowsϳÌÐò×éÖ¯µÄÒ»ÖÖÖØÒª·½Ê½,ʹÓö¯Ì¬Á´½Ó¿â¿ÉÒÔ¼«´óµØ±£»¤Óû§ÔÚ²»Í¬¿ª·¢¹¤¾ß¡¢²»Í¬Ê±ÆÚËù×öµÄ¹¤×÷,Ìá¸ß±à³ÌЧÂÊ¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
6
Â¥
2.ʲôÊǶ¯Ì¬Á¬½Ó¿âÎļþ£¿ÓÐʲôÓã¿
¡¡¡¡¼ÆËã»úÓïÑÔ ¾ÍÊÇд³ÌÐòÓïÑÔ ¡¡¡¡¸úÎÒÃÇ˵»°Ò»Ñù ÓÉÒ»¾äÒ»¾äÍêÕûµÄÒâ˼À´¹¹³É ¡¡¡¡ÄÃCÀ´Ëµ ÿһ¶ÎÄܹ»¶ÀÁ¢Ö´ÐеÄÓï¾ä ½Ð×öº¯Êý ¡¡¡¡¶¯Ì¬Á´½Ó¿â ¾Í°üº¬Á˺ܶຯÊý ¡¡¡¡µ«ÊÇÕâЩº¯Êý ²»Äܹ»¶ÀÁ¢ÔËÐÐ ¡¡¡¡ÐèÒªexeÎļþÖеĺ¯Êý À´µ÷ÓÃËü ¡¡¡¡dllÎļþÕûºÏÁË Ò»¸öº¯Êý¼¯ Õâ¸öº¯Êý¼¯ ¸³¸øËüÒ»¶¨µÄ²ÎÊý ¾ÍÄܶÀÁ¢µÄÍê³ÉÒ»ÏîÈÎÎñ ¡¡¡¡ÔÚ±à³ÌÖÐ ÕâÑùµÄ¶«Î÷ ½ÐÄ£¿é ¡¡¡¡¸ù¾ÝdllµÄÌØÐÔ ¡¡¡¡Ëü°üº¬ÁË Ò»¶¨µÄ×Ô¼ºµÄÊôÐÔºÍʼþ¶¯×÷ ¡¡¡¡ËùÒÔ ÓÖÊôÓÚÀàÄ£¿é ¡¡¡¡Ö´ÐÐЧÂÊ±È½Ï¸ß ¡¡¡¡ÎªÊ²Ã´Òª×ö³ÉdllÎļþÄØ? ¡¡¡¡ÒòΪÕâÑù±ãÓÚ À©Õ¹ºÍÒÆÖ² ¡¡¡¡´ò¸ö±È·½ Ò»¸öÀà(.dll)ËüµÄ×÷ÓÃÊDzéѯʱ¼ä ¡¡¡¡ËùÒÔ²»¹Üʲô³ÌÐò Ö»ÒªÓõ½²éѯʱ¼äÕâ¸ö¹¦ÄÜÁË ¡¡¡¡¶¼¿ÉÒÔµ÷ÓÃÕâ¸ö²éѯʱ¼ä¹¦ÄܵÄÀà ¡¡¡¡Ö»Òª½Ó¿Ú ºÍµ÷Óõĺ¯ÊýÃû,²ÎÊýÕýÈ·¾Í¿ÉÒÔ¹Ò½Ó ¡¡¡¡Òò´Ë²»±ØÔÚÿ¸ö³ÌÐòÀﶼдÉϲéѯʱ¼äµÄ´úÂëÔö¼Ó³ÌÐò±¾ÉíµÄ³¤¶È 3.ʲôÊǾ²Ì¬Á´½Ó¿â£¿ ¾²Ì¬Á´½Ó¿â¾ÍÊÇ.libÎļþ£¬¿âÖеôúÂë×îºóÐèÒªÁ¬½Óµ½ÄãµÄ¿ÉÖ´ÐÐÎļþÖÐÈ¥£¬ËùÒÔ¾²Ì¬Á¬½ÓµÄ¿ÉÖ´ÐÐÎļþÒ»°ã±È½Ï´óһЩ¡£ Èç¹ûÄãʹÓÃVC£¬¿ÉÒÔÔÚProject Setting-->LinkÖмÓÈëÄãµÄ¾²Ì¬¿â£¬Ò²¿ÉÒÔÖ±½Ó°Ñ¸Ã.libÎļþ¼ÓÈëµ½ÄãµÄ¹¤³ÌÖС£ ÔÚ¾²Ì¬¿âÇé¿öÏ£¬º¯ÊýºÍÊý¾Ý±»±àÒë½øÒ»¸ö¶þ½øÖÆÎļþ£¨Í¨³£À©Õ¹ÃûΪ*.LIB£©£¬Visual C++µÄ±àÒëÆ÷ÔÚ´¦Àí³ÌÐò´úÂëʱ½«´Ó¾²Ì¬¿âÖлָ´ÕâЩº¯ÊýºÍÊý¾Ý²¢°ÑËûÃǺÍÓ¦ÓóÌÐòÖÐµÄÆäËûÄ£¿é×éºÏÔÚÒ»ÆðÉú³É¿ÉÖ´ÐÐÎļþ¡£Õâ¸ö¹ý³Ì³ÆÎª"¾²Ì¬Á´½Ó"£¬´ËʱÒòΪӦÓóÌÐòËùÐèµÄÈ«²¿ÄÚÈݶ¼ÊÇ´Ó¿âÖи´ÖÆÁ˳öÀ´£¬ËùÒÔ¾²Ì¬¿â±¾Éí²¢²»ÐèÒªÓë¿ÉÖ´ÐÐÎļþÒ»Æð·¢ÐС£ 4.¾²Ì¬¿âºÍ¶¯Ì¬¿âµÄÇø±ð£¿ ¾²Ì¬Á¬½Ó¿â,ÔÚ±àÒëÒÔºó°üº¬ÔÚ¿ÉÖ´ÐÐÎļþÖÐ,²»»áÒÔµ¥¶ÀÎļþµÄÐÎʽ´æÔÚ.¶¯Ì¬Á¬½Ó¿âÊÇÒÔµ¥¶ÀÎļþµÄÐÎʽ´æÔÚ,±»³ÌÐòÍⲿµ÷ÓÃ,¶¯Ì¬Á¬½Ó¿âµÄºÃ´¦¾ÍÊÇ¿ÉÒÔ¶à¸ö½ø³Ì·ÃÎÊÒ»¸ö¶¯Ì¬Á¬½Ó¿â,²¢ÇÒ¹²ÏíÒ»¿éÄÚ´æ.¾²Ì¬Ôò°üº¬ÔÚ³ÌÐòÖÐ,²»Äܱ»Íⲿµ÷ÓÃ! ¼òµ¥µØ½²£¬¾²Ì¬¿â³ÌÐòºÜ³¤£¬µ«¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬¶¯Ì¬¿â³ÌÐòºÜ¶Ì£¬µ«ÐèÒªÆäËüһЩ¶¯Ì¬¿â´æÔÚ²ÅÄܽøÐй¤×÷¡£ ÐèҪעÒâµÄÊÇ£¬¾Íij¸ö¶¯Ì¬¿âÀ´Ëµ£¬ËüÒ²Óо²Ì¬¿â°æ±¾ºÍ¶¯Ì¬¿â°æ±¾£¬Æä¾²Ì¬¿â°æ±¾¿ÉÒÔ¶ÀÁ¢¹¤×÷£¬µ«Æä¶¯Ì¬¿â°æ±¾²»ÄܶÀÁ¢¹¤×÷£¬ÈÔÈ»ÐèÒªÆäËü¶¯Ì¬¿âµÄÖ§³Ö¡£ 5.¾²Ì¬µ÷Ó÷½Ê½ºÍ¶¯Ì¬µ÷Ó÷½Ê½ 1£©¡¢¾²Ì¬µ÷Ó÷½Ê½£ºÓɱàÒëϵͳÍê³É¶Ô DLL µÄ¼ÓÔØºÍÓ¦ÓóÌÐò½áÊøÊ± DLL Ð¶ÔØµÄ±àÂ루È绹ÓÐÆäËü³ÌÐòʹÓøà DLL£¬Ôò Windows ¶Ô DLL µÄÓ¦ÓüǼ¼õ1£¬Ö±µ½ËùÓÐÏà¹Ø³ÌÐò¶¼½áÊø¶Ô¸Ã DLL µÄʹÓÃʱ²ÅÊÍ·ÅËü£¬¼òµ¥ÊµÓ㬵«²»¹»Áé»î£¬Ö»ÄÜÂú×ãÒ»°ãÒªÇó¡£ ¡¡¡¡ÒþʽµÄµ÷ÓãºÐèÒª°Ñ²úÉú¶¯Ì¬Á¬½Ó¿âʱ²úÉúµÄ .LIB Îļþ¼ÓÈëµ½Ó¦ÓóÌÐòµÄ¹¤³ÌÖУ¬ÏëʹÓà DLL Öеĺ¯Êýʱ£¬Ö»Ðë˵Ã÷һϡ£Òþʽµ÷Óò»ÐèÒªµ÷Óà LoadLibrary() ºÍ FreeLibrary()¡£³ÌÐòÔ±ÔÚ½¨Á¢Ò»¸ö DLL Îļþʱ£¬Á´½Ó³ÌÐò»á×Ô¶¯Éú³ÉÒ»¸öÓëÖ®¶ÔÓ¦µÄ LIB µ¼ÈëÎļþ¡£¸ÃÎļþ°üº¬ÁËÿһ¸ö DLL µ¼³öº¯ÊýµÄ·ûºÅÃûºÍ¿ÉÑ¡µÄ±êʶºÅ£¬µ«ÊDz¢²»º¬ÓÐʵ¼ÊµÄ´úÂë¡£LIB Îļþ×÷Ϊ DLL µÄÌæ´úÎļþ±»±àÒëµ½Ó¦ÓóÌÐòÏîÄ¿ÖС£ ¡¡¡¡µ±³ÌÐòԱͨ¹ý¾²Ì¬Á´½Ó·½Ê½±àÒëÉú³ÉÓ¦ÓóÌÐòʱ£¬Ó¦ÓóÌÐòÖеĵ÷Óú¯ÊýÓë LIB ÎļþÖе¼³ö·ûºÅÏàÆ¥Å䣬ÕâЩ·ûºÅ»ò±êʶºÅ½øÈëµ½Éú³ÉµÄ EXE ÎļþÖС£LIB ÎļþÖÐÒ²°üº¬Á˶ÔÓ¦µÄ DL LÎļþÃû£¨µ«²»ÊÇÍêÈ«µÄ·¾¶Ãû£©£¬Á´½Ó³ÌÐò½«Æä´æ´¢ÔÚ EXE ÎļþÄÚ²¿¡£ ¡¡¡¡µ±Ó¦ÓóÌÐòÔËÐйý³ÌÖÐÐèÒª¼ÓÔØ DLL Îļþʱ£¬Windows ¸ù¾ÝÕâЩÐÅÏ¢·¢ÏÖ²¢¼ÓÔØ DLL£¬È»ºóͨ¹ý·ûºÅÃû»ò±êʶºÅʵÏÖ¶Ô DLL º¯ÊýµÄ¶¯Ì¬Á´½Ó¡£ËùÓб»Ó¦ÓóÌÐòµ÷ÓÃµÄ DLL Îļþ¶¼»áÔÚÓ¦ÓóÌÐò EXE Îļþ¼ÓÔØÊ±±»¼ÓÔØÔÚµ½ÄÚ´æÖС£¿ÉÖ´ÐгÌÐòÁ´½Óµ½Ò»¸ö°üº¬ DLL Êä³öº¯ÊýÐÅÏ¢µÄÊäÈë¿âÎļþ(.LIBÎļþ)¡£²Ù×÷ϵͳÔÚ¼ÓÔØÊ¹ÓÿÉÖ´ÐгÌÐòʱ¼ÓÔØ DLL¡£¿ÉÖ´ÐгÌÐòÖ±½Óͨ¹ýº¯ÊýÃûµ÷Óà DLL µÄÊä³öº¯Êý£¬µ÷Ó÷½·¨ºÍ³ÌÐòÄÚ²¿Æä ËüµÄº¯ÊýÊÇÒ»ÑùµÄ¡£ 2£©¡¢¶¯Ì¬µ÷Ó÷½Ê½£ºÊÇÓɱà³ÌÕßÓà API º¯Êý¼ÓÔØºÍÐ¶ÔØ DLL À´´ïµ½µ÷Óà DLL µÄÄ¿µÄ£¬Ê¹ÓÃÉϽϸ´ÔÓ£¬µ«Äܸü¼ÓÓÐЧµØÊ¹ÓÃÄڴ棬ÊDZàÖÆ´óÐÍÓ¦ÓóÌÐòʱµÄÖØÒª·½Ê½¡£ ¡¡¡¡ÏÔʽµÄµ÷ÓãºÊÇÖ¸ÔÚÓ¦ÓóÌÐòÖÐÓà LoadLibrary »ò MFC ÌṩµÄ AfxLoadLibrary ÏÔʽµÄ½«×Ô¼ºËù×öµÄ¶¯Ì¬Á¬½Ó¿âµ÷½øÀ´£¬¶¯Ì¬Á¬½Ó¿âµÄÎļþÃû¼´ÊÇÉÏÃæÁ½¸öº¯ÊýµÄ²ÎÊý£¬ÔÙÓà GetProcAddress() »ñÈ¡ÏëÒªÒýÈëµÄº¯Êý¡£×Ô´Ë£¬Äã¾Í¿ÉÒÔÏóʹÓÃÈçͬ±¾Ó¦ÓóÌÐò×Ô¶¨ÒåµÄº¯ÊýÒ»ÑùÀ´µ÷ÓôËÒýÈ뺯ÊýÁË¡£ÔÚÓ¦ÓóÌÐòÍ˳ö֮ǰ£¬Ó¦¸ÃÓà FreeLibrary »ò MFC ÌṩµÄ AfxFreeLibrary ÊͷŶ¯Ì¬Á¬½Ó¿â¡£Ö±½Óµ÷Óà Win32 µÄ LoadLibary º¯Êý£¬²¢Ö¸¶¨ DLL µÄ·¾¶×÷Ϊ²ÎÊý¡£LoadLibary ·µ»Ø HINSTANCE ²ÎÊý£¬Ó¦ÓóÌÐòÔÚµ÷Óà GetProcAddress º¯ÊýʱʹÓÃÕâÒ»²ÎÊý¡£GetProcAddress º¯Êý½«·ûºÅÃû»ò±êʶºÅת»»Îª DLL ÄÚ²¿µÄµØÖ·¡£³ÌÐòÔ±¿ÉÒÔ¾ö¶¨ DLL ÎļþºÎʱ¼ÓÔØ»ò²»¼ÓÔØ£¬ÏÔʽÁ´½ÓÔÚÔËÐÐʱ¾ö¶¨¼ÓÔØÄĸö DLL Îļþ¡£Ê¹Óà DLL µÄ³ÌÐòÔÚʹÓÃ֮ǰ±ØÐë¼ÓÔØ£¨LoadLibrary£©¼ÓÔØDLL´Ó¶øµÃµ½Ò»¸öDLLÄ£¿éµÄ¾ä±ú£¬È»ºóµ÷Óà GetProcAddress º¯ÊýµÃµ½Êä³öº¯ÊýµÄÖ¸Õ룬ÔÚÍ˳ö֮ǰ±ØÐëÐ¶ÔØDLL(FreeLibrary)¡£ 6.ʲôÊÇÀà?ʲôÊÇÀà¿â? Á½¸ö¸ÅÄî´æÔÚÓÚÃæÏò¶ÔÏóµÄÓïÑÔ: Àà,¹ËÃû˼Òå,¾ÍÊÇһЩӵÓÐÏàͬÊôÐÔµÄÊý¾ÝµÄ¼¯ºÏ,ºÍÏÖʵÖеÄÈËÀà,¶¯ÎïÀàÏàËÆ.ÓÐÀàµÄ¸ÅÄîÏà¹ØµÄ»¹Óи¸Àà,×ÓÀà,ÀàµÄ¼Ì³ÐµÈ.Ëùν¸¸ÀàºÍ×ÓÀàµÄ¹ØÏµÏ൱ÓÚÈ˺ÍÖйúÈ˵ĹØÏµ.ÀàÖÐÓÐÊôÐԺͷ½·¨,ÕâÁ½¸öÒ²ÊÇÖØÒªµÄ¸ÅÄî,ÉÏÊöÈý¸ö¸ÅÄî(¸¸Àà,×ÓÀà,ÀàµÄ¼Ì³Ð)¶¼Êǽ¨Á¢ÔÚËüµÄ»ù´¡ÉϵÄ. Àí½âÁËÀà,Àà¿â¾ÍºÜ¼òµ¥ÁË,¾ÍÊÇÀàµÄ¼¯ºÏ. ÒÔÏÂÊDZȽÏרҵµÄ½âÊÍ ÀࣨClass£©Êµ¼ÊÉÏÊǶÔijÖÖÀàÐ͵ĶÔÏó¶¨Òå±äÁ¿ºÍ·½·¨µÄÔÐÍ¡£ ÀàÊǶÔij¸ö¶ÔÏóµÄ¶¨Òå¡£Ëü°üº¬ÓйضÔÏó¶¯×÷·½Ê½µÄÐÅÏ¢£¬°üÀ¨ËüµÄÃû³Æ¡¢·½·¨¡¢ÊôÐÔºÍʼþ¡£Êµ¼ÊÉÏËü±¾Éí²¢²»ÊǶÔÏó£¬ÒòΪËü²»´æÔÚÓÚÄÚ´æÖС£µ±ÒýÓÃÀàµÄ´úÂëÔËÐÐʱ£¬ÀàµÄÒ»¸öеÄʵÀý£¬¼´¶ÔÏ󣬾ÍÔÚÄÚ´æÖд´½¨ÁË¡£ËäȻֻÓÐÒ»¸öÀ࣬µ«ÄÜ´ÓÕâ¸öÀàÔÚÄÚ´æÖд´½¨¶à¸öÏàͬÀàÐ͵ĶÔÏó¡£ ¿ÉÒÔ°ÑÀà¿´×÷¡°ÀíÂÛÉÏ¡±µÄ¶ÔÏó£¬Ò²¾ÍÊÇ˵£¬ËüΪ¶ÔÏóÌṩÀ¶Í¼£¬µ«ÔÚÄÚ´æÖв¢²»´æÔÚ¡£´ÓÕâ¸öÀ¶Í¼¿ÉÒÔ´´½¨ÈκÎÊýÁ¿µÄ¶ÔÏó¡£´ÓÀà´´½¨µÄËùÓжÔÏó¶¼ÓÐÏàͬµÄ³ÉÔ±£ºÊôÐÔ¡¢·½·¨ºÍʼþ¡£µ«ÊÇ£¬Ã¿¸ö¶ÔÏó¶¼ÏóÒ»¸ö¶ÀÁ¢µÄʵÌåÒ»Ñù¶¯×÷¡£ÀýÈ磬һ¸ö¶ÔÏóµÄÊôÐÔ¿ÉÒÔÉèÖóÉÓëͬÀàÐÍµÄÆäËû¶ÔÏó²»Í¬µÄÖµ¡£ Microsoft(r) Visual Basic(r) for Applications (VBA) ¹¤³ÌÖпɰüº¬Á½ÖÖ²»Í¬ÀàÐ͵ÄÀàÄ£¿é£ºÃ»ÓÐÈκÎÒ»ÖÖÓëÆä¹ØÁªµÄÓû§½çÃæµÄ»ù±¾ÀàÄ£¿é£»Óë´°Ìå»òÆäËü×é¼þ¹ØÁªµÄÀàÄ£¿é¡£ÀýÈ磬Óë´°ÌåÏà¹ØÁªµÄÀàÄ£¿é£¬ËüÃǺͻù±¾ÀàÄ£¿éÏàͬ£¬Ö»ÊÇËüÃÇÖ»ÓÐÔÚÄǸö´°Ìå´æÔÚÓÚÄÚ´æÖÐʱ£¬²Å´æÔÚÓÚÄÚ´æÖС£ÓµÓÐÏà¹ØÁªµÄÀàÄ£¿éµÄ¶ÔÏóµÄʾÀýÊÇ¡°Óû§´°Ì塱¡¢Microsoft(r) Access ´°ÌåºÍ±¨±í¡¢Microsoft(r) Word µÄ ThisDocument ¶ÔÏó£¬Microsoft(r) Excel µÄ ThisWorkbook ºÍ SheetN ¶ÔÏó¡£ ÔÚÏÖʵÊÀ½çÖУ¬Äã¾³£¿´µ½ÏàͬÀàÐ͵ÄÐí¶à¶ÔÏó¡£±ÈÈç £¬ÄãµÄ×ÔÐгµÖ»ÊÇÏÖʵÊÀ½çÖÐÐí¶à×ÔÐгµµÄÆäÖÐÒ»Á¾¡£Ê¹ÓÃÃæÏò¶ÔÏó¼¼Êõ£¬ÎÒÃÇ¿ÉÒÔ˵ÄãµÄ×ÔÐгµÊÇ×ÔÐгµ¶ÔÏóÀàµÄÒ»¸öʵÀý¡£Í¨³££¬×ÔÐгµÓÐһЩ״̬£¨µ±Ç°µµÎ»¡¢Á½¸öÂÖ×ӵȵȣ©ÒÔ¼°ÐÐΪ£¨¸Ä±äµµÎ»¡¢É²³µµÈµÈ£©¡£µ«ÊÇ£¬Ã¿Á¾×ÔÐгµµÄ״̬¶¼ÊǶÀÁ¢µÄ²¢ÇÒ¸úÆäËü×ÔÐгµ²»Í¬¡£ µ±³§¼ÒÖÆÔì×ÔÐгµµÄʱºò£¬³§ÉÌÀûÓÃÁË×ÔÐгµ¹²ÓеÄÌØÐÔÀ´¸ù¾ÝÏàͬµÄÀ¶Í¼ÖÆÔìÐí¶à×ÔÐгµ¡£Èç¹ûÖÆÔìÒ»Á¾×ÔÐгµ¾ÍÒª²úÉúÒ»¸öÐÂÀ¶Í¼£¬ÄÇЧÂʾÍÌ«µÍÁË¡£ ÔÚÃæÏò¶ÔÏóÈí¼þÖУ¬Í¬ÑùµØ£¬¿ÉÒÔÈÃÏàͬÖÖÀàµØÐí¶à¶ÔÏóÀ´¹²ÓÐÒ»Ð©ÌØÐÔ£¬±ÈÈç¾ØÐΡ¢¹ÍÔ±¼Ç¼¡¢ÊÓÆµ¼ÐµÈµÈ¡£¾ÍÏó×ÔÐгµÖÆÔìÉÌÈË£¬Äã¿ÉÒÔÀûÓÃÏàͬÖÖÀàµÄ¶ÔÏóÊÇÏàËÆµÄÊÂʵ²¢ÇÒÄã¿ÉÒÔΪÕâЩ¶ÔÏó´´½¨Ò»¸öÀ¶Í¼¡£¶Ô¶ÔÏóµÄÈí¼þÀ¶Í¼½Ð×öÀà¡£ ×ÔÐгµµÄÀàÐèÒª¶¨ÒåһЩʵÀý±äÁ¿À´°üÀ¨µ±Ç°µµÎ»¡¢µ±Ç°Ëٶȵȵȡ£Õâ¸öÀཫΪʵÀý·½·¨¶¨ÒåºÍÌṩʵʩ·½·¨£¬ËüÔÊÐíÆï³µÕ߸ı䵵λ¡¢É²³µÒÔ¼°¸Ä±ä½Å̤°åµÄ½Ú×à¡£ µ±Äã´´½¨ÁË×ÔÐгµÀàÒÔºó£¬Äã¿ÉÒÔ´ÓÕâ¸öÀà´´½¨ÈÎÒâ¸ö×ÔÐгµ¶ÔÏó¡£µ±Äã´´½¨ÁËÒ»¸öÀàµÄʵÀýºó£¬ÏµÍ³½«ÎªÕâ¸ö¶ÔÏóºÍµÄʵÀý±äÁ¿·ÖÅäÄڴ档ÿ¸öʵÀý½«¸øËùÓÐʵÀý±äÁ¿µÄ¸±±¾¶¨ÒåÔÚÀàÖС£ ³ýÁËʵÀý±äÁ¿£¬À໹Ҫ¶¨ÒåÀàµÄ±äÁ¿¡£Àà±äÁ¿°üº¬Á˱»ÀàËùÓÐʵÀý¹²ÏíµÄÐÅÏ¢¡£±ÈÈ磬¼ÙÉèËùÓеÄ×ÔÐгµÓÐÏàͬµÄµµÎ»Êý¡£ÔÚ±¾Àý×ÓÖУ¬Òª¶¨ÒåÒ»¸öʵÀý±äÁ¿À´ÈÝÄɵµÎ»Êý¡£Ã¿Ò»¸öʵÀý¶¼»áÓбäÁ¿µÄ¸±±¾£¬µ«ÊÇÔÚÿһ¸öʵÀýÖÐÊýÖµ¶¼ÊÇÏàͬµÄ¡£ÔÚÕâÑùµÄÇé¿öÏ£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸öÀà±äÁ¿À´°üº¬µµÎ»Êý£¬ÕâÑùËùÓеÄÀàµÄʵÀý¶¼¹²ÏíÕâ¸ö±äÁ¿¡£Èç¹ûÒ»¸ö¶ÔÏó¸Ä±äÁ˱äÁ¿£¬Ëü¾ÍΪ¸Ä±äÄǸöÀàµÄËùÓжÔÏó¡£ÀàͬÑù¿ÉÒÔ¶¨ÒåÀà·½·¨¡£Äã¿ÉÒÔÖ±½Ó´ÓÀàÖе÷ÓÃÀà·½·¨£¬È»¶øÄã±ØÐëÔÚÌØ¶¨µÄʵÀýÖе÷ÓÃʵÀý·½·¨¡£ 7.LIBºÍDLL LIB ÊÇ Library µÄËõд£¬ÔÚ³ÌÐò±àÒëʱÁ´½Ó DLL ÊÇ Dynamic Link Library £¨¶¯Ì¬Á´½Ó¿â£©µÄËõд£¬ÔÚ³ÌÐòÔËÐйý³ÌÖÐÁ´½Ó¡£ÓÃÒþʽµÄÁ¬½Óµ½Ò»¸öDLLÊǵÄʱºò£¬±ØÐëÒªÒ»¸öÒýÈë¿â£¨Import Lib) ¾ÍÊÇDLLµÄLib¡£dllÊǸö±àÒëºÃµÄ³ÌÐò, µ÷ÓÃʱ¿ÉÒÔÖ±½Óµ÷ÓÃÆäÖеĺ¯Êý, ²»²Î¼Ó¹¤³ÌµÄ±àÒë. ¶ølibÓ¦¸Ã˵ÊÇÒ»¸ö³ÌÐò¼¯, Ö»ÊǰÑһЩÏàÓ¦µÄº¯Êý×ܽáÔÚÒ»Æð, Èç¹ûµ÷ÓÃlibÖеĺ¯Êý, ÔÚ¹¤³Ì±àÒëʱ,ÕâЩµ÷Óõĺ¯Êý¶¼½«²Î¼Ó±àÒë. 8.DLLÓëLIBµÄÇø±ð: 1).DLLÊÇÒ»¸öÍêÕû³ÌÐò,ÆäÒѾ¾¹ýÁ´½Ó,¼´²»´æÔÚͬÃûÒýÓÃ,ÇÒÓе¼³ö±í£¬Óëµ¼Èë±í libÊÇÒ»¸ö´úÂ뼯(Ò²½Ðº¯Êý¼¯)ËûûÓÐÁ´½Ó,ËùÒÔlibÓÐÈßÓà,µ±Á½¸ölibÏàÁ´½ÓʱµØÖ·»áÖØÐ½¨Á¢£¬µ±È»»¹ÓÐÆäËüÏà¹ØµÄ²»Í¬,ÓÃlib.exe¾ÍÖªµÀÁË 2)ÔÚÉú³Édllʱ£¬¾³£»áÉú³ÉÒ»¸ö.lib(µ¼ÈëÓëµ¼³ö),Õâ¸ölibʵ¼ÊÉϲ»ÊÇÕæÕýµÄº¯Êý¼¯£¬Æäÿһ¸öµ¼³öµ¼È뺯Êý¶¼ÊÇÌø×ªÖ¸Áֱ½ÓÌø×ªµ½DLLÖеÄλÖã¬Õâ¸öÄ¿µÄÊÇÍâÃæµÄ³ÌÐòµ÷ÓÃdllʱ×Ô¶¯Ìø×ª 3).ʵ¼ÊÉÏ×î³£ÓõÄlibÊÇÓÉlib.exe°Ñ*.objÉú³ÉµÄlib,Õâ²ÅÊÇÕæÕýµÄ¿â£¬ËûÊÇ´úÂ뼯£¬¿ÉÍêÈ«´úÌæÄ¿±ê´úÂë
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
7
Â¥
5).Gdi32
DLL Îļþ£º gdi32 »òÕß gdi32.dll DLL Ãû³Æ£º Windows GDI Client DLL [±à¼]ÃèÊö gdi32.dllÊÇWindows GDIͼÐÎÓû§½çÃæÏà¹Ø³ÌÐò£¬ÓÃÓÚ¸¨Öú´´½¨×齨 6). ByValÊÇʲôÒâ˼ ¹ý³ÌÖеĴúÂëͨ³£ÐèҪijЩ¹ØÓÚ³ÌÐò״̬µÄÐÅÏ¢²ÅÄÜÍê³ÉËüµÄ¹¤×÷¡£ÐÅÏ¢°üÀ¨ÔÚµ÷Óùý³Ìʱ´«µÝµ½¹ý³ÌÄڵıäÁ¿¡£µ±½«±äÁ¿´« µÝµ½¹ý³Ìʱ£¬³Æ±äÁ¿Îª²ÎÊý¡£ ²ÎÊýµÄÊý¾ÝÀàÐÍ ¹ý³ÌµÄ²ÎÊý±»È±Ê¡Îª¾ßÓÐ Variant Êý¾ÝÀàÐÍ¡£²»¹ý£¬Ò²¿ÉÒÔÉùÃ÷²ÎÊýΪÆäËüÊý¾ÝÀàÐÍ¡£ ÀýÈ磬ÏÂÃæµÄº¯Êý½ÓÊÜÒ»¸ö×Ö·û´®ºÍÒ»¸öÕûÊý£º Function WhatsForLunch(WeekDay As String, Hour As Integer) As String '¸ù¾ÝÐÇÆÚ¼¸ºÍʱ¼ä£¬·µ»ØÎç²Í²Ëµ¥¡£ If WeekDay = "Friday" then WhatsForLunch = "Fish" Else WhatsForLunch = "Chicken" End If If Hour > 4 Then WhatsForLunch = "Too late" End Function ByVal °´Öµ´«µÝ(ByValue),Òâ˼ÊÇ´«ÈëµÄÐÎʽ²ÎÊý¸Ä±äÁË,µ«ÊDz»Ó°Ïìʵ¼Ê²ÎÊýµÄÊýÖµ ±ÈÈç ÔÚÒ»¸öº¯Êýfn()ÓвÎÊýpara,ÊÇbyvalµÄ, ÄÇôÔÚº¯ÊýÀïÃæÈç¹ûÓÐÓï¾äpara=999, ÓбäÁ¿dim p as integer = 100; ÄÇôµ÷Óà fn(p) Ö®ºó,pµÄÖµÈÔÈ»ÊÇ100,¶ø²»ÊÇ999,º¯ÊýÀïÃæµÄÐ޸IJ»Ó°ÏìÍâÃæµÄ±äÁ¿ 1.°´Öµ´«µÝ²ÎÊý °´Öµ´«µÝ²ÎÊýʱ£¬´«µÝµÄÖ»ÊDZäÁ¿µÄ¸±±¾¡£Èç¹û¹ý³Ì¸Ä±äÁËÕâ¸öÖµ£¬ÔòËù×÷±ä¶¯Ö»Ó°Ï츱±¾¶ø²»»áÓ°Ïì±äÁ¿±¾Éí¡£Óà ByVal ¹Ø ¼ü×ÖÖ¸³ö²ÎÊýÊǰ´ÖµÀ´´«µÝµÄ¡£ ÀýÈ磺 Sub PostAccounts (ByVal intAcctNum as Integer) . . 'ÕâÀï·ÅÓï¾ä¡£ . End Sub ÓëËü¶ÔÓ¦µÄÊÇByRef ,°´ÒýÓô«µÝ Õâ¸öʱºò,µ÷ÓÃÁ˺¯ÊýÖ®ºó,pµÄÖµ¾Í±ä³É999ÁË 2.°´µØÖ·´«µÝ²ÎÊý °´µØÖ·´«µÝ²ÎÊýʹ¹ý³ÌÓñäÁ¿µÄÄÚ´æµØÖ·È¥·ÃÎÊʵ¼Ê±äÁ¿µÄÄÚÈÝ¡£½á¹û£¬½«±äÁ¿´«µÝ¸ø¹ý³Ìʱ£¬Í¨¹ý¹ý³Ì¿ÉÓÀÔ¶¸Ä±ä±äÁ¿Öµ¡£°´µØÖ·´«µÝ²ÎÊýÔÚ Visual Basic ÖÐÊÇȱʡµÄ¡£ Èç¹û¸ø°´µØÖ·´«µÝ²ÎÊýÖ¸¶¨Êý¾ÝÀàÐÍ£¬¾Í±ØÐ뽫ÕâÖÖÀàÐ͵ÄÖµ´«¸ø²ÎÊý¡£¿ÉÒÔ¸ø²ÎÊý´«µÝÒ»¸ö±í´ïʽ£¬¶ø²»ÊÇÊý¾ÝÀàÐÍ¡£Visual Basic ¼ÆËã±í´ïʽ£¬Èç¹û¿ÉÄܵϰ£¬»¹»á°´ÒªÇóµÄÀàÐͽ«Öµ´«µÝ¸ø²ÎÊý¡£ °Ñ±äÁ¿×ª»»³É±í´ïʽµÄ×î¼òµ¥µÄ·½·¨¾ÍÊǰÑËü·ÅÔÚÀ¨ºÅÄÚ¡£ÀýÈ磬ΪÁ˰ÑÉùÃ÷ΪÕûÊýµÄ±äÁ¿´«µÝ¸ø¹ý³Ì£¬¸Ã¹ý³ÌÒÔ×Ö·û´®Îª²ÎÊý£¬Ôò¿ÉÒÔÓÃÏÂÃæµÄÓï¾ä£º Sub CallingProcedure () Dim intX As Integer intX = 12 * 3 Foo (intX) End Sub Sub Foo (Bar As String) MsgBox Bar 'Bar µÄֵΪ×Ö·û´®¡® 36 ¡¯¡£ End Sub
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
8
Â¥
×¢ÊÍ3: Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
1).CreateRoundRectRgn VBÉùÃ÷ Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long ˵Ã÷ ´´½¨Ò»¸öÔ²½Ç¾ØÐΣ¬¸Ã¾ØÐÎÓÉX1£¬Y1-X2£¬Y2È·¶¨£¬²¢ÓÉX3£¬Y3È·¶¨µÄÍÖÔ²ÃèÊöÔ²½Ç»¡¶È ·µ»ØÖµ Long£¬Ö´Ðгɹ¦ÔòÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪ0 ²ÎÊý±í ²ÎÊý ÀàÐÍ ËµÃ÷ X1,Y1 Long ¾ØÐÎ×óÉϽǵÄX£¬Y×ø±ê X2,Y2 Long ¾ØÐÎÓÒϽǵÄX£¬Y×ø±ê X3 Long Ô²½ÇÍÖÔ²µÄ¿í¡£Æä·¶Î§´Ó0£¨Ã»ÓÐÔ²½Ç£©µ½¾ØÐÎ¿í£¨È«Ô²£© ? Y3 Long Ô²½ÇÍÖÔ²µÄ¸ß¡£Æä·¶Î§´Ó0£¨Ã»ÓÐÔ²½Ç£©µ½¾ØÐθߣ¨È«Ô²£© ? ×¢½â ²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ý¸ÃÇøÓò Óøú¯Êý´´½¨µÄÇøÓòÓëÓÃRoundRect APIº¯Êý»µÄÔ²½Ç¾ØÐβ»ÍêÈ«Ïàͬ£¬ÒòΪ±¾¾ØÐεÄÓұߺÍϱ߲»°üÀ¨ÔÚÇøÓòÖ®ÄÚ
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
9
Â¥
×¢ÊÍ4: Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
1).CreateEllipticRgn VBÉùÃ÷ Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long ˵Ã÷ ´´½¨Ò»¸öÍÖÔ²£¬¸ÃÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇÐ ·µ»ØÖµ Long£¬Ö´Ðгɹ¦ÔòÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪÁã ²ÎÊý±í ²ÎÊý ÀàÐÍ ËµÃ÷ X1,Y1 Long ¾ØÐÎ×óÉϽÇX£¬Y×ø±ê X2,Y2 Long ¾ØÐÎÓÒϽÇX£¬Y×ø±ê ×¢½â ²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ýÇøÓò¡£ÓÃEllipse APIº¯Êý»æ³öµÄÍÖÔ²Óë¸ÃÍÖÔ²ÇøÓò²»ÍêÈ«Ïàͬ£¬ÒòΪ±¾º¯ÊýµÄ»æÍ¼¼ÆËã²» °üÀ¨¾ØÐεÄϱߺÍÓÒ±ß ÏÂÃæµÄÀý×ÓÊÇÎÒËѵ쬶ÔÎÒÀí½âCreateEllipticRgnºÜÓаïÖú£º Ö÷Ì⣺º¯ÊýCreateEllipticRgnµÄÎÊÌâ ×÷Õߣºnizainade ÎÒÔÚÏÂÔØµÄvbÀý×ÓÓиö³¤ÉúÍÖÔ²´°ÌåµÄº¯Êý£¬ÏàÐÅ´ó¼ÒÒ²¶¼¼û¹ýÕâ¸öÀý×Ó Ö»ÊÇÓÐÒ»µãÎÒ²»Ì«Ã÷°×£º w = Form1.Width / Screen.TwipsPerPixelX h = Form1.Height / Screen.TwipsPerPixelY a = CreateEllipticRgn(0, 0, w, h) b = SetWindowRgn(Me.hWnd, a, True) ÉÏÃæµÄ´úÂ룬w£¬hºÃÏñÊǰÑtwipת»»³ÉpixelµÄµ¥Î»£¬Ò»¶¨Òª×ª»»Âð£¬Ö±½ÓÓÃĬÈϵÄtwip²»ÐÐÂð£¬ÎÒ°ÑËû¸Ã³É£ºa = CreatEllopticRgn(0,0,width,height)£¬È´Ã»ÓÐÔËÐнá¹û£¬ÇëÎÊÕâÊÇÔõô»ØÊÂÄØ 1 Â¥ ÒòΪÎÒÃǵÄ×ÀÃæµÄ·Ö±æÂÊÊÇÒÔÏñËØÀ´·ÖµÄ£¬¶øVBÀïÊÇÓÃ羡£ç¾ÓëÏñËØµÄ±ÈÊÇ15£¬ËùÒÔ²»×ª³ÉÏñËØµÄ»°£¬Ï൱ÓÚ½«´°ÌåÀ©´ó15±¶£¬µ±È»Ã»½á¹ûÁË¡£ 2 Â¥ 1.ÄãµÄÒâ˼ÊÇCreateEllipticRgnÕâ¸öº¯ÊýµÄ²ÎÊýÒªÓÃÏóËØ×÷Ϊµ¥Î»,ÊDz»ÊÇapiº¯ÊýµÄͼÐκ¯Êý¶¼ÊÇÒÔÏóËØÎªº¯ÊýÄØ?? 2.CreateEllipticRgn(0, 0, w, h)ÖеÄ,¼¸¸ö²ÎÊýÊÇÒÔÆÁÄ»µÄ×ø±êϵΪ±ê×¼Âð??,ÄÇô0,0 Ó¦¸ÃÔÚÆÁÄ»µÄ×î×óÉϽǰ¡,µ«Êǽá¹ûÔËÐеĴ°ÌåÊÇÔÚÆÁÄ»Öмä,ÇëÎÊÕâÊÇΪʲô???ÎÒ¶ÔvbµÄ×ø±êϵÓеãÃÔ»ó,¼´:²»ÖªµÀÊÇÆÁÄ»µÄ»¹ÊÇ´°ÌåµÄ,ÍûÖ¸½Ì! 3 Â¥ ÎÊÌâÒ»£º Ò»°ãÓ¦¸ÃÊÇÒÔÏñËØÎªµ¥Î»µÄ ÎÊÌâ¶þ£º ËüÊÇÒÔÆÁÄ»×ø±êϵΪ±ê×¼µÄ£¬ÎªÊ²Ã´»áÔÚÖмäÄØ£¿ºÇºÇÆäʵÄã¿´¿´CreateEllipticRgn º¯ÊýµÄ˵Ã÷¾ÍÖªµÀÁË ¡°´´½¨Ò»¸öÍÖÔ²£¬¸ÃÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇС±×¢ÒâÊǾØÐÎÄÚÇУ¬ËùÒÔÇ°ÃæµÄ×ø±êµã¼´X1¡¢Y1Ϊ0¡¢0£¬Ö»ÊÇÈ·±£Ëù»µÄ¾ØÐÎÆðµãÊÇÆÁÄ»µÄ£¨0£¬0£©£¬µ«ÄÚÇÐÍÖÔ² µÄÖÐÐĵã¾ÍÊÇÆÁÄ»ÖÐÐÄÁË¡£ 4 Â¥ "ÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇÐ"Õâ¾ä»°,Ó¦¸ÃÊÇ´´½¨Ò»¸öÒÔx1,y1Ϊ×óÉ϶¥µã,ÒÔx2,y2ΪÓÒ϶¥µãµÄ¾ØÐκó,ÔÙÔÚÕâ¸ö¾ØÐÎÀïÃæ»®ÄÚÇÐÍÖÔ²°É,°´ÕÕÕâ¸öÀí½â,¾ØÐÎÓ¦¸ÃÊÇÔÚ×óÉϽǰ¡ ÎÒµÄÀí½âÊDz»ÊÇÄÄÀïÓÐÎÊÌâ°¡,Íû¸ßÊÖ²»Áߴͽ̰¡ 5 Â¥ Àí½âÊǶÔÁ˵«ÒòΪÕâ¸öÊÇ´´½¨ÍÖÔ²µÄ¹ý³ÌÄãÊÇ¿´²»µ½µÄ£¬Äܹ»ÈÃÄãµÄ´°Ìå³ÉΪÍÖÔ²µÄÊÇb = SetWindowRgn(Me.hWnd, a, True)Õâ¾ä£¬ÖÁÓÚΪʲôÍÖÔ²»áÔÚÆÁÄ»ÖмäÊÇÒòΪÄãµÄ´°ÌåµÄStartUpPositionÊôÐÔÉèÁËÆÁÄ»¾ÓÖС£ 6 Â¥ ¶àл˧¸ç²»ÑáÆä·³µÄ»Ø´ðÎÒµÄÎÊÌâ,ÎÒÃ÷°×Á˵ÚÒ»¸öº¯ÊýÖ»ÊDzúÉúÍÖÔ²ÇøÓò,µÚ¶þ¸öÔÙ°Ñ´°ÌåÉèΪÍÖÔ²Ð͵Ä,
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
10
Â¥
(×¢ÊÍ5) : Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
1).CombineRgn VBÉùÃ÷ Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long ˵Ã÷ ½«Á½¸öÇøÓò×éºÏΪһ¸öÐÂÇøÓò ·µ»ØÖµ Long£¬ÏÂÁг£ÊýÖ®Ò»£º COMPLEXREGION£ºÇøÓòÓл¥ÏཻµþµÄ±ß½ç SIMPLEREGION£ºÇøÓò±ß½çûÓл¥Ïཻµþ NULLREGION£ºÇøÓòΪ¿Õ ERRORAPI£º²»ÄÜ´´½¨×éºÏÇøÓò ²ÎÊý±í ²ÎÊý ÀàÐÍ ËµÃ÷ hDestRgn Long °üº¬×éºÏ½á¹ûµÄÇøÓò¾ä±ú hSrcRgn1 Long Ô´ÇøÓò1 hSrcRgn2 Long Ô´ÇøÓò2 nCombineMode Long ×éºÏÁ½ÇøÓòµÄ·½·¨¡£¿ÉÉèΪÏÂÊö³£Êý RGN_AND hDestRgn ±»ÉèÖÃΪÁ½¸öÔ´ÇøÓòµÄ½»¼¯ RGN_COPY hDestRgn ±»ÉèÖÃΪhSrcRgn1µÄ¿½±´ RGN_DIFF hDestRgn ±»ÉèÖÃΪhSrcRgn1ÖÐÓëhSrcRgn2²»ÏཻµÄ²¿·Ö RGN_OR hDestRgn ±»ÉèÖÃΪÁ½¸öÇøÓòµÄ²¢¼¯ RGN_XOR hDestRgn ±»ÉèÖÃΪ³ýÁ½¸öÔ´ÇøÓòORÖ®ÍâµÄ²¿·Ö ×¢Ò⣺ CombineRgn hDestRgn, hSrcRgn1, hSrcRgn2, RGN_DIFF ½«ÇøÓòhSrcRgn1Öв»ÊôÓÚhSrcRgn2µÄÇøÓòºÏ²¢µ½combined_rgnÖУ¬Èç¹ûÄã´´½¨µÄhSrcRgn2ÇøÓòÒª´óÓÚhSrcRgn1ÇøÓò,¼´hSrcRgn1- hSrcRgn2¡´0£¬ÄÇôhDestRgnÊǸö¿ÕÇøÓò!¼´±àÒëºóÒìÐδ°ÌåÎÞ·¨ÏÔʾ£¡ÓÃSetWindowRgn hWnd, hRgn, True¾Í»á¿´²»µ½Í¼ÐÎ ÕâÖÖ´íÎóÊÇÉèÖô°Ìå×ø±êģʽ´íÎóµ¼ÖµÄ,½«½¹µãËùÔÚ´°ÌåµÄscalemodeÉèÖÃ³ÉÆäËûģʽÄã»á¿´µ½Ð§¹ûµÄ.
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
11
Â¥
×¢ÊÍ6: Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As long) As Long
1).SetWindowRgn ¡¾VBÉùÃ÷¡¿ Private Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long ¡¾ËµÃ÷¡¿ ÕâÊÇÄÇЩºÜÄÑÓÐÈË×¢Òâµ½µÄ¶Ô±à³ÌÕßÀ´ËµÊǸö¾Þ´óµÄ±¦²ØµÄÒþº¬µÄAPIº¯ÊýÖеÄÒ»¸ö¡£±¾º¯ÊýÔÊÐíÄú¸Ä±ä´°¿ÚµÄÇøÓò¡£ ͨ³£ËùÓд°¿Ú¶¼ÊǾØÐεġª¡ª´°¿ÚÒ»µ©´æÔھͺ¬ÓÐÒ»¸ö¾ØÐÎÇøÓò¡£±¾º¯ÊýÔÊÐíÄú·ÅÆú¸ÃÇøÓò¡£ÕâÒâζ×ÅÄú¿ÉÒÔ´´½¨Ô²µÄ¡¢ÐÇÐÎ µÄ´°¿Ú£¬Ò²¿ÉÒÔ½«Ëü·ÖΪÁ½¸ö»òÐí¶à²¿·Ö¡ª¡ªÊµ¼ÊÉÏ¿ÉÒÔÊÇÈκÎÐÎ×´ ¡¾·µ»ØÖµ¡¿ Long£¬Ö´Ðгɹ¦Îª·ÇÁãÖµ£¬Ê§°ÜΪ0 ¡¾±¸×¢¡¿ ÎªÇøÓòÖ¸¶¨µÄËùÓÐ×ø±ê¶¼ÒÔ´°¿Ú×ø±ê£¨²»Êǿͻ§×ø±ê£©±íʾ£¬ËüÃÇÒÔÕû¸ö´°¿Ú£¨°üÀ¨±êÌâÀ¸ºÍ±ß¿ò£©µÄ×óÉϽÇΪÆðµã ¡¾²ÎÊý±í¡¿ hWnd ----------- Long£¬½«ÉèÖÃÆäÇøÓòµÄ´°¿Ú hRgn ----------- Long£¬½«ÉèÖõÄÇøÓòµÄ¾ä±ú£¬Ò»µ©ÉèÖÃÁ˸ÃÇøÓò£¬¾Í²»ÄÜʹÓûòÐ޸ĸÃÇøÓò¾ä±ú£¬Ò²²»ÒªÉ¾³ýËü bRedraw -------- Boolean£¬ÈôΪTRUE£¬ÔòÁ¢¼´ÖØ»´°¿Ú 2).user32 - user32.dll user32 - user32.dll - DLLÎļþÐÅÏ¢ DLL Îļþ£º user32 »òÕß user32.dll DLL Ãû³Æ£º Windows User API Client DLL ÃèÊö£º user32.dllÊÇWindowsÓû§½çÃæÏà¹ØÓ¦ÓóÌÐò½Ó¿Ú£¬ÓÃÓÚ°üÀ¨Windows´¦Àí£¬»ù±¾Óû§½çÃæµÈÌØÐÔ¡£ ÊôÓÚ£º Windows User API ϵͳ DLLÎļþ£º ÊÇ ³£¼û´íÎó£º File Not Found, Missing File, Exception Errors
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
12
Â¥
×¢ÊÍ7 : Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
1).DeleteObject WindowsÏÔʾÉ豸µÄÊôÐÔ£¬¹²ÓÐÏÂÃæ¼¸ÖÖ£ºÎ»Í¼¡¢»Ë¢¡¢×ÖÌå¡¢»±Ê¡¢ÇøÓò¡£Èç¹ûÒªÉèÖÃËüÃǵ½µ±Ç°É豸À¾ÍÐèҪʹÓà SelectObjectº¯Êý£¬±ÈÈçÉÏÃæ½éÉܵÄ×ÖÌåÉèÖ㬾ͻáÓõ½Õâ¸öº¯Êý¡£µ±Äã´´½¨Ò»¸öλͼʱ£¬ÕâʱWindows¾Í»áÔÚÄÚ´æÀï·ÖÅäÒ»¿éÄÚ ´æ¿Õ¼ä£¬ÓÃÀ´±£´æÎ»Í¼µÄÊý¾Ý¡£µ±Äã´´½¨×ÖÌåʱ£¬Ò²»á·ÖÅäÒ»¿éÄÚ´æ¿Õ¼ä±£´æ×ÖÌå¡£Èç¹û³ÌÐòÖ»ÊÇ·ÖÅ䣬¶ø²»È¥É¾³ý£¬¾Í»áÔì³É ÄÚ´æÊ¹ÓÃÔ½À´Ô½¶à£¬×îºóµ¼µ½WindowsÕâ´±´óÂ¥µ¹ÏÂÀ´¡£Èç¹ûÄãÍü¼Çɾ³ýËü£¬¾ÍÔì³ÉÁËÄÚ´æÐ¹Â©¡£Òò´Ë£¬µ±Äã´´½¨ÏÔʾÉ豸×ÊԴʱ £¬Ò»¶¨Òª¼ÇµÃɾ³ýËüÃǰ¡£¬·ñÔòÔËÐÐÄãµÄ³ÌÐòÔ½³¤£¬¾Íµ¼ÖÂϵͳ²»Îȶ¨¡£¼ÇµÃʹÓÃDeleteObjectº¯Êýȥɾ³ýËüÃÇ£¬°ÑÕ¼ÓõÄÄÚ´æ ÊÍ·Å»ØÈ¥¸øÏµÍ³¡£ DeleteObjectº¯Êý¹¦ÄÜ£º¸Ãº¯Êýɾ³ýÒ»¸öÂß¼±Ê¡¢»±Ê¡¢×ÖÌ塢λͼ¡¢ÇøÓò»òÕßµ÷É«°å£¬ÊÍ·ÅËùÓÐÓë¸Ã¶ÔÏóÓйصÄϵͳ×ÊÔ´£¬ ÔÚ ¶ÔÏó±»É¾³ýÖ®ºó£¬Ö¸¶¨µÄ¾ä±úÒ²¾ÍʧЧÁË¡£ º¯ÊýÔÐÍ£ºBOOL DeleteObject(HGDIOBJ hObject)£» ²ÎÊý£º hObject£ºÂß¼±Ê¡¢»±Ê¡¢×ÖÌ塢λͼ¡¢ÇøÓò»òÕßµ÷É«°åµÄ¾ä±ú¡£ ·µ»ØÖµ£º³É¹¦£¬·µ»Ø·ÇÁãÖµ£»Èç¹ûÖ¸¶¨µÄ¾ä±úÎÞЧ»òÕßËüÒѱ»Ñ¡ÈëÉ豸ÉÏÏÂÎÄ»·¾³£¬Ôò·µ»ØÖµÎªÁã¡£ ×¢ÊÍ£ºµ±Ò»¸ö»æ»¶ÔÏó£¨Èç±Ê»ò»±Ê£©µ±Ç°±»Ñ¡ÈëÒ»¸öÉ豸ÉÏÏÂÎÄ»·¾³Ê±²»ÒªÉ¾³ý¸Ã¶ÔÏó¡£µ±Ò»¸öµ÷É«°å»±Ê±»É¾³ýʱ£¬Óë¸Ã» ±ÊÏà¹ØµÄλͼ²¢²»±»É¾³ý£¬¸Ãͼ±ØÐëµ¥¶ÀµØÉ¾³ý¡£ Windows CE£ºµ±¶ÔÏóÔÚµ±Ç°±»Ñ¡ÈëÒ»¸öÉ豸ÉÏÏÂÎÄ»·¾³Ê±£¬DeleteObjectº¯Êý·µ»Ø´íÎó¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
13
Â¥
×¢ÊÍ8: Private Const RGN_DIFF = 4
Const RGN_AND = 1 '½«Á½¸öÇøÓòÏà¼Ó Const RGN_OR = 2 '½«Á½¸öÇøÓò½øÐлò²Ù×÷ Const RGN_XOR = 3 '½«Á½¸öÇøÓò½øÐÐÒì»ò²Ù×÷ Const RGN_DIFF = 4 '½«Á½¸öÇøÓòÏà¼õ Const RGN_COPY = 5 '´´½¨hSrcRgn1µÄ¿½±´ VBÖÐconstÊǸÉʲôµÄ? 1.ÃèÊö ÉùÃ÷ÓÃÓÚ´úÌæÎÄ×ÖÖµµÄ³£Êý¡£ 2.Óï·¨ [Public | Private] Const constname = expression Èç Private Const sMyName As String = "Harry Potter" Private Const rPi As Single = 3.1415927 Private Const rPi2 As Single = rPi * 2 Const Óï¾äµÄÓï·¨°üº¬ÒÔϲ¿·Ö£º ²¿·Ö ÃèÊö Public ¿ÉÑ¡¡£¸Ã¹Ø¼ü×ÖÓÃÓÚÔÚ Script ¼¶ÖÐÉùÃ÷¿ÉÓÃÓÚËùÓÐ Script ÖÐËùÓйý³ÌµÄ³£Êý¡£²»ÔÊÐíÔÚ¹ý³ÌÖÐʹÓᣠPrivate ¿ÉÑ¡¡£¸Ã¹Ø¼ü×ÖÓÃÓÚÔÚ Script ¼¶ÖÐÉùÃ÷Ö»¿ÉÓÃÔÚÉùÃ÷ËùÔÚµÄ Script Öеij£Êý¡£²»ÔÊÐíÔÚ¹ý³ÌÖÐʹÓᣠconstname ±ØÑ¡¡£³£ÊýµÄÃû³Æ£¬¸ù¾Ý±ê×¼µÄ±äÁ¿ÃüÃûÔ¼¶¨¡£ expression ±ØÑ¡¡£ÎÄ×Ö»òÆäËû³£Êý£¬»ò°üÀ¨³ý Is ÍâµÄËùÓÐËãÊõ²Ù×÷·ûºÍÂß¼²Ù×÷·ûµÄÈÎÒâ×éºÏ¡£ 3.×÷Ó㺠¶¨Òå³£Á¿¡£Ò»À´¿ÉÒÔ·Àֹд´í£¬¶þÀ´Ð޸ķ½±ã¡£ 4.˵Ã÷ ÔÚĬÈÏÇé¿öϳ£ÊýÊǹ«Óõġ£¹ý³ÌÖеij£Êý×ÜÊÇרÓе쬯ä¿É¼ûÐÔÎÞ·¨¸Ä±ä¡£Script(±ê׼ģ¿é)ÖУ¬¿ÉÓà Private ¹Ø¼ü×ÖÀ´¸Ä ±ä Script¼¶³£Êý¿É¼ûÐÔµÄĬÈÏÖµ¡£²»¹ý£¬ÔÚÀàÄ£¿éÖУ¬³£ÊýÖ»ÄÜÊÇ˽Óе쬶øÇÒÓà Public ¹Ø¼ü×ÖÒ²²»ÄܸıäÆä¿É¼ûÐÔ¡£ ÒªÔÚͬһÐÐÖÐÉùÃ÷Èô¸É¸ö³£Êý£¬¿ÉÓöººÅ½«Ã¿¸ö³£Êý¸³Öµ·Ö¿ª¡£ÓÃÕâÖÖ·½·¨ÉùÃ÷³£Êýʱ£¬Èç¹ûʹÓÃÁË Public »ò Private ¹Ø¼ü×Ö £¬Ôò¸Ã¹Ø¼ü×Ö¶Ô¸ÃÐÐÖÐËùÓг£Êý¶¼ÓÐЧ¡£ 5.×¢Òâ ³£ÊýÉùÃ÷Öв»ÄÜʹÓñäÁ¿¡¢Óû§×Ô¶¨ÒåµÄº¯Êý»ò VBScript ÄÚ²¿º¯Êý£¨Èç Chr)¡£°´¶¨Ò壬ËüÃDz»ÄÜÊdz£Êý¡£ÁíÍâÒ²²»ÄÜ´Óº¬ÓÐ ²Ù×÷·ûµÄ±í´ïʽÖд´½¨³£Êý£¬¼´Ö»ÔÊÐíʹÓüòµ¥³£Êý¡£ÔÚ Sub »ò Function ¹ý³ÌÖÐÉùÃ÷µÄ³£ÊýÊǸùý³ÌµÄ¾Ö²¿³£Êý¡£ÔÚ¹ý³ÌÍâÉù Ã÷µÄ³£ÊýÊÇÉùÃ÷ËùÔÚµÄ Script ÖеÄÈ«¾Ö³£Êý¡£¿ÉÒÔÔÚÈκÎʹÓñí´ïʽµÄµØ·½Ê¹Óó£Êý¡£ ³£Êý¿ÉÒÔʹ Script ¸ü¾ß¿É¶ÁÐÔ£¬ÇÒÒ× ÓÚÐ޸ġ£ÔÚ Script ÔËÐÐʱ£¬³£Êý²»»áÏó±äÁ¿ÄÇÑùÎÞÒâÖб»¸Ä±ä¡£ Èç¹ûÔÚÉùÃ÷³£ÊýʱûÓÐÏÔʽµØÊ¹Óà As type ×Ӿ䣬Ôò¸Ã³£ÊýµÄÊý¾ÝÀàÐÍÊÇ×îÊÊºÏÆä±í´ïʽµÄÊý¾ÝÀàÐÍ¡£ÔÚ Sub¡¢Function »ò Property ¹ý³ÌÖÐÉùÃ÷µÄ³£Êý¶¼ÊǸùý³ÌµÄ.
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
14
Â¥
×¢ÊÍ9: If OutRgn <> 0 And InRgn <> 0 And MyRgn <> 0 Then Exit Sub
Õâ¾äÊÇ·ÀÖ¹ÖØ¸´´´½¨Í¼ÐÎ.ºóÃæCreateRectRgn,CreateRoundRectRgn,CreateEllipticRgnÈý¸öº¯Êý´´½¨ÇøÓòºóOutRgn,InRgnºÍMyRgn¾Í²»µÈÓÚ0ÁË
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
15
Â¥
×¢ÊÍ10: w = ScaleX(Form1.Width, vbTwips, vbPixels)
h = ScaleY(Form1.Height, vbTwips, vbPixels) ScaleX¡¢ScaleY ·½·¨ -------------------------------------------------------------------------------- scalexÊÇÔÚVBÖÐformµÄ·½·¨£¬¹¦ÄÜÊǰÑ×ø±ê³¤¶Èת»»³ÉÏñÔªËØÊý Ó¦ÓÃÓÚ½« Form£¬PictureBox »ò Printer µÄ¿í¶È»ò¸ß¶ÈÖµ´ÓÒ»ÖÖ ScaleMode ÊôÐԵĶÈÁ¿µ¥Î»×ª»»µ½ÁíÒ»ÖÖ¡£²»Ö§³ÖÃüÃû²ÎÊý¡£ Óï·¨ object.ScaleX (width, fromscale, toscale) object.ScaleY (height, fromscale, toscale) ScaleX ºÍ ScaleY ·½·¨µÄÓï·¨°üº¬Èçϲ¿·Ö£º ²¿·Ö ÃèÊö object ¿ÉÑ¡µÄ¡£Ò»¸ö¶ÔÏó±í´ïʽ£¬ÆäֵΪ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£Èç¹ûÊ¡ÂÔ object£¬Ôò´øÓн¹µãµÄ Form ¶ÔÏóȱʡΪ object¡£ width ±ØÐèµÄ¡£Îª object Ö¸¶¨±»×ª»»µÄ¶ÈÁ¿µ¥Î»µÄÊýÁ¿¡£ height ±ØÐèµÄ¡£Îª object Ö¸¶¨±»×ª»»µÄ¶ÈÁ¿µ¥Î»µÄÊýÁ¿¡£ fromscale ¿ÉÑ¡µÄ¡£Ò»¸ö³£Êý»òÊýÖµ£¬°´ÕÕÏÂÁÐÉèÖÃÖеÄÃèÊö£¬Ö¸¶¨ object µÄ width »ò height ´ÓÄÄÒ»ÖÖ×ø±êϵͳת»»¡£ fromscale ¿ÉÈ¡µÄÊýÖµÓë ScaleMode ÊôÐÔµÄÊýÖµ¼ÓÉÏ HiMetric µÄÐÂÊýÖµÏàͬ¡£ toscale ¿ÉÑ¡µÄ¡£Ò»¸ö³£Êý»òÊýÖµ£¬°´ÕÕÏÂÁС°ÉèÖÃÖµ¡±ÖеÄÃèÊö£¬Ö¸¶¨ object µÄ width »ò height ת»»µ½ÄÄÒ»ÖÖ×ø±êϵͳ toscale ¿ÉÈ¡µÄÊýÖµÓë ScaleMode ÊôÐÔµÄÊýÖµ¼ÓÉÏ HiMetric µÄÐÂÊýÖµÏàͬ¡£ ÉèÖÃÖµ ÓÃÓÚ fromscale ºÍ toscale ÉèÖÃÖµÓУº ³£Êý Öµ ÃèÊö vbUser 0 Óû§¶¨Ò壺ָʾ object µÄ¿í¶ÈºÍ¸ß¶ÈÉèÖÃΪ×Ô¶¨ÒåÖµ¡£ vbTwips 1 ç¾£¨Ã¿Âß¼Ó¢´ç 1440 ç¾£»Ã¿Âß¼ÀåÃ× 567 ç¾£©¡£ vbPoints 2 °õ£¨Ã¿Âß¼Ó¢´ç 72 µã£©¡£ vbPixels 3 ÏñËØ £¨ÏÔʾÆ÷»ò´òÓ¡»ú·Ö±æÂʵÄ×îСµ¥Î»£©¡£ vbCharacters 4 ×Ö·û£¨Ë®Æ½ = ÿµ¥Î» 120 ç¾£¬´¹Ö± = ÿµ¥Î» 240 ç¾£©¡£ vbInches 5 Ó¢´ç vbMillimeters 6 ºÁÃ× vbCentimeters 7 ÀåÃ× vbHimetric 8 HiMetric¡£Èç¹ûÊ¡ÂÔ fromscale£¬Ôò HiMetric Ϊȱʡֵ¡£ vbContainerPosition 9 ¾ö¶¨¿Ø¼þλÖᣠvbContainerSize 10 ¾ö¶¨¿Ø¼þ´óС¡£ ˵Ã÷ ScaleX ºÍ ScaleY ·½·¨°´ fromscale Ö¸¶¨µÄ¶ÈÁ¿µ¥Î»È¡Öµ£¨width »ò height£©£¬²¢½«Ëüת»»Îª toscale Ö¸¶¨µÄ¶ÈÁ¿µ¥Î»ÏÂÏà Ó¦µÄÖµ¡£Ò²¿ÉÒÔ½áºÏ PaintPicture ·½·¨Ê¹Óà ScaleX ºÍ ScaleY¡£ -------------------------------------------------------------------------------- Ó¦ÓÃÓÚ£º Form ¶ÔÏó¡¢Forms ¼¯ºÏ PictureBox ¿Ø¼þ PropertyPage ¶ÔÏó UserControl ¶ÔÏó -------------------------------------------------------------------------------- Ïà¹Ø»ù´¡ÖªÊ¶£º ÃüÃû²ÎÊý Ò»²ÎÊý£¬ÔÚ¶ÔÏó¿âÖÐÔ¤Ïȶ¨ÒåÁËÆäÃû³Æ¡£¶Ôÿ¸ö²ÎÊý£¬²»±Ø¾ÐÄàÓÚÓï·¨Ëù¹æ¶¨µÄÌØ¶¨Ë³ÐòÀ´Ìṩֵ£¬¶øÊÇÖ»Ðè°´ÈκÎ˳ÐòÓÃÃüÃû ²ÎÊý·ÖÅäÖµ¡£ÀýÈ磬¼ÙÉèÒ»·½·¨½ÓÊÜÁËÈý¸ö²ÎÊý£º DoSomeThing namedarg1, namedarg2, namedarg3 ÔÚ¶ÔÃüÃû²ÎÊý¸³ÖµÊ±£¬¿ÉʹÓÃÒÔÏÂÓï¾ä£º DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20 ×¢Ò⣬ÃüÃûµÄ²ÎÊý²»±Ø°´Óï·¨Öа²ÅŵÄÕý¹æË³Ðò³öÏÖ¡£ ¶ÔÏó±í´ïʽ ˵Ã÷¾ßÌå¶ÔÏóµÄ±í´ïʽ£¬¿ÉÒÔ°üº¬¶ÔÏóµÄÈÝÆ÷¡£ÀýÈ磬ӦÓóÌÐò¿ÉÒÔÓµÓÐ Application ¶ÔÏ󣬯äÖаüº¬ Document ¶ÔÏ󣬶ø Document ¶ÔÏóÓÖ°üº¬ Text ¶ÔÏó¡£ ½¹µã ÔÚÈκÎʱ¼ä½ÓÊÕÊó±êµ¥»÷»ò¼üÅÌÊäÈëµÄÄÜÁ¦¡£ÔÚ Microsoft Windows »·¾³ÖУ¬ÔÚͬһʱ¼äÖ»ÓÐÒ»¸ö´°¿Ú¡¢´°Ìå»ò¿Ø¼þ¾ßÓÐÕâÖÖÄÜ Á¦¡£¡°¾ßÓн¹µã¡±µÄ¶ÔÏóͨ³£»áÒÔÍ»³öÏÔʾ±êÌâ»ò±êÌâÀ¸À´±íʾ¡£Óû§»òÓ¦ÓóÌÐò¿ÉÉèÖý¹µã¡£ ç¾ Ò»¸öÓëÆÁÄ»Î޹صĵ¥Î»£¬ÓÃÀ´±£Ö¤ÆÁĻӦÓóÌÐò¶ÔÆÁÄ»ÔªËØµÄ¶¨Î»ºÍ±ÈÀýÔÚËùÓеÄÏÔʾϵͳÉϵÄÒ»ÖÂÐÔ¡£Ò»ç¾µÈ¼ÛÓÚ 1/20 ¸ö´ò Ó¡»úµÄ°õ¡£Ò»Âß¼Ó¢´ç´óÔ¼ÓÐ 1440 ç¾£¬Ò»Âß¼ÀåÃ×Ô¼ 567 ç¾£¨´òӡʱµÄÒ»Ó¢´ç»òÒ»ÀåÃ×Ëù¶ÔÓ¦µÄÆÁÄ»Éϵij¤¶È£©¡£ °õ ÔÚÓ¡Ë¢ÊõÓïÖУ¬Ò»°õÊÇ 1/72 Ó¢´ç¡£×ÖÌå´óСͨ³£ÓðõÀ´±í´ï¡£ ÏñËØ ¼´¡°Í¼Æ¬ÔªËØ¡±µÄ¼ò³Æ£¬ËüÊÇ´ú±íÆÁÄ»ÉϵÄ×îСͼÐζÈÁ¿µ¥Î»µÄµã¡£ÏñËØÊÇÒÀÀµÓÚÆÁÄ»µÄ£¬¼´ÆÁÄ»ÔªËØµÄάÊýÒòÏÔʾϵͳºÍ·Ö±æÂʶøÒì¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
16
Â¥
×¢ÊÍ11: Call CombineRgn(MyRgn, OutRgn, InRgn, RGN_DIFF)
1.CallÓï·¨ [Call] name [argumentlist] ²¿·Ö ÃèÊö Call ¿ÉÑ¡²ÎÊý£»¹Ø¼ü×Ö¡£Èç¹ûÖ¸¶¨ÁËÕâ¸ö¹Ø¼ü×Ö£¬Ôò argumentlist ±ØÐë¼ÓÉÏÀ¨ºÅ£¬ÀýÈ磺Call MyProc(0) name ±ØÒª²ÎÊý£¬Òªµ÷ÓõĹý³ÌÃû³Æ¡£ argumentlist ¿ÉÑ¡²ÎÊý£¬±äÁ¿ 2.˵Ã÷ µ÷ÓÃÒ»¸ö¹ý³Ìʱ£¬²¢²»Ò»¶¨ÒªÊ¹Óà Call ¹Ø¼ü×Ö¡£Èç¹ûʹÓà Call ¹Ø¼ü×ÖÀ´µ÷ÓÃÒ»¸öÐèÒª²ÎÊýµÄ¹ý³Ì£¬argumentlist ¾Í±ØÐëÒª ¼ÓÉÏÀ¨ºÅ¡£Èç¹ûÊ¡ÂÔÁË Call ¹Ø¼ü×Ö£¬ÄÇôҲ±ØÐëҪʡÂÔ argumentlis ÍâÃæµÄÀ¨ºÅ¡£Èç¹ûʹÓà Call Óï·¨À´µ÷ÓÃÄÚ½¨º¯Êý»òÓû§ ¶¨Ò庯Êý£¬Ôòº¯ÊýµÄ·µ»ØÖµ½«±»¶ªÆú¡£ÈôÒª½«Õû¸öÊý×é´«¸øÒ»¸ö¹ý³Ì£¬¾ÍҪʹÓÃÊý×éÃû£¬È»ºóÔÚÊý×éÃûºó¼ÓÉÏ¿ÕÀ¨ºÅ¡£ 3.Çø±ð£º Ó÷¨²»Í¬(Ò»¸öÓÐÀ¨ºÅÒ»¸öûÀ¨ºÅ) call testproc(a,b,c) testproc a,b,c 4.×¢Òâ ÓÐʱµ÷ÓÃϵͳAPIʱÓÐʱ²»ÓÃCALL»á±àÒ벻ͨ¹ýµÄ£¬ÒòΪÓеÄAPI»á·µ»ØÖµ£¬±àÒëʱÌáʾ±í´ïʽ×ó±ßȱÉÙ±äÁ¿=¡£Èç¹ûƒÉ‚€ß^³Ì²»ÔÚ Ò»‚€´°ów»òÕß¼U‰K,ÄÇôCallҲûÓà 5.×÷Ó㺠Call¾ÍÊǵ÷ÓÃij¸öº¯Êý£¬Èç Call TestFunc() 6.²¹³ä£º call²»ÊDZØÐëÒªÓõ쬵«ÊÇcallÊÇÓÐËü´æÔڵĵÀÀíµÄ¡£ÄãÖ±½Ó°ÑÒ»¸öº¯ÊýÃûдÔÚÄDZߣ¬Èç¹û´úÂëºÜ¶à£¬¿É¶ÁÐԾͲ»ÊǺܺã¬Ïà·´ £¬ Èç¹ûÔÚÇ°Ãæ¼ÓÉÏÒ»¸öCall£¬ÄÇô¾ÍÓÐһĿÁËÈ»µÄ¸Ð¾õ£¬ÖªµÀ֪ʶµ÷ÓõÄÒ»¸öº¯Êý£¬Èç¹ûûÓУ¬¿É¶ÁÐԾͲ»ÊǺܺÃÁË£¡Çø±ðÖ÷Òª ÔÚÕâ Àï¡£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
17
Â¥
×¢ÊÍ12: Form1.BackColor = QBColor(4)
QBColorº¯Êý ÑÕɫҲ¿ÉÒÔÓÃQBColorº¯ÊýÀ´±íʾ,·µ»ØÒ»¸ö Long£¬ÓÃÀ´±íʾËù¶ÔÓ¦ÑÕɫֵµÄ RGB ÑÕÉ«Âë¡£Óï·¨QBColor(color)±ØÒªµÄ color ²ÎÊýÊÇÒ»¸ö½çÓÚ 0 µ½ 15 µÄÕûÐÍ¡£Ê¼ÓÚ×îµÍÓÐЧ×Ö½Ú£¬·µ»ØÖµÖ¸¶¨Á˺졢ÂÌ¡¢À¶ÈýÔÉ«µÄÖµ£¬ÓÃÓÚÉèÖÃ³É VBAÖÐRGB ϵͳµÄ¶ÔÓ¦ ÑÕÉ«¡£ VBÖÐÓÃQBColor(i)´ú±íÒ»ÖÖÑÕÉ« iÖµ ÑÕÉ« iÖµ ÑÕÉ« --- ------ --- ------ 0 ºÚÉ« 8 »ÒÉ« gray 1 À¶É« 9 ÁÁÀ¶É« 2 ÂÌÉ« 10 ÁÁÂÌÉ« 3 ÇàÉ« 11 ÁÁÇàÉ« cyan 4 ºìÉ« 12 ÁÁºìÉ« 5 ·ÛºìÉ« 13 ÁÁ·ÛºìÉ« 6 »ÆÉ« 14 ÁÁ»ÆÉ« 7 °×É« 15 ÁÁ°×É« VB.NET color RGBº¯Êý ³£Êý ·µ»ØÖµ ÑÕÉ« -------------------- ---------- ---------- ------ RGB(0£¬0£¬0) VbBlack &H0 ºÚÉ« RGB(255£¬0£¬0) VbRed &HFF0 ºìÉ« RGB(0£¬255£¬0) VbGreen &HFF00 ÂÌÉ« RGB(0£¬0£¬255) VbBlue &HFF0000 À¶É« RGB(0£¬255£¬255) VbCyan &HFFFF00 ÇàÉ« RGB(255£¬0£¬255) VbMagenta &HFF00FF ×ϺìÉ« RGB(255£¬255£¬0) VbYellow &HFFFF »ÆÉ« RGB(255£¬255£¬255) VbWhite &HFFFFFF °×É«
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
18
Â¥
×¢ÊÍ13: Private Sub Form_Resize()
Form_Resize()ʼþ£º Form_Resize()ÊÇÔÚForm_Initialize()ʼþºÍForm_Load()ʼþÖ®ºóµÄ´°Ìå³õʼ»¯Ê¼þ¡£ Form_Resize()Ö÷ÒªÉèÖÃһЩ¿Ø¼þµÄÊôÐÔ£¬±ÈÈ磺 Text1.Width=...... Command1.Top=...... Form_Resize()ÊÇÒ»¸öʼþ¹ý³Ì£¬¶ø²»ÊÇʲôÊôÐÔ¡£ ´ËʼþµÄ¼¤·¢Ìõ¼þÊǵ±´°ÌåµÄ´óСÓб仯ʱ·¢Éú¡£ ÔÚÕâ¸öʼþÀÄã¿ÉÒÔ·ÅÈëÄãµÄ´úÂ룬×÷Äã×Ô¼ºÏë×÷µÄÊ¡£ ²¹³ä£º Initialize ʼþ µ±Ó¦ÓóÌÐò´´½¨ Form¡¢MDIForm¡¢User¿Ø¼þ¡¢Property Page Webclass¡¢DHTML Page Designer»òÀàµÄʵÀýʱ·¢Éú¡£ 1.Óï·¨ Private Sub object_Initialize( ) object ËùÔÚ´¦´ú±í¶ÔÏó±í´ïʽ£¬ÆäÖµÊÇ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£ 2.˵Ã÷ ÈçÏÂÇé¿ö´¥·¢ Initialize ʼþ£º Óà CreateObject º¯Êý´´½¨ÀàµÄÒ»¸öʵÀý£¬È磺 Set X = CreateObject("Project1.MyClass") ÒýÓô°Ìå»òÀàʵÀýµÄÊôÐÔ»òʼþ£¬¸ÃÊôÐÔ»òʼþÓÉÓû§´úÂë×Ô¶¯´´½¨¡£ MyForm.Caption = "Example" Ó¦ÓôËʼþ³õʼ»¯ Form¡¢MDIForm¡¢»òÀàËùÓõÄÊý¾Ý¡£¶Ô Form »ò MDIForm£¬Initialize ʼþÔÚ Load ʼþÖ® ǰ·¢Éú¡£ 3.×÷Ó㺠formµÄinitializeʼþ½«»áÓÅÏÈÓÚformµÄloadʼþ±»´¥·¢£¬Èç¹û˵ÄãÒªÔÚformÔØÈëµÄʱºòÐèÒªÏÈ×öЩʲô¶¯×÷µÄ»°¿ÉÒÔÔÚÕâÁ½¸ö ʼþÖмÓÈë´úÂë¡£±ÈÈç˵³õʼ»¯±äÁ¿£¬³õʼ»¯´°Ìå¿Ø¼þ°Ú·ÅµÄÑùʽ£¬³õʼ»¯¿Ø¼þÄÚÈݵȵȡ£
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
19
Â¥
×¢ÊÍ14£º If WindowState = vbMinimized Then Exit Sub
vb³ÌÐòÖÐ windowstate ÊôÐÔÓ÷¨£¿ 1.Óï·¨ object.WindowState [= value] ²¿·Ö ÃèÊö Object ¶ÔÏó±í´ïʽ£¬ÆäÖµÊÇ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£ Value Ò»¸öÓÃÀ´Ö¸¶¨¶ÔÏó״̬µÄÕûÊý£¬¡°ÉèÖÃÖµ¡±ÖÐÓÐÏêϸÃèÊö¡£ value µÄÉèÖÃֵΪ£º ³£Êý Öµ ÃèÊö vbNormal 0 £¨È±Ê¡Öµ£©Õý³£ ¡£ VbMinimized 1 ×îС»¯£¨×îС»¯ÎªÒ»¸öͼ±ê£© VbMaximized 2 ×î´ó»¯£¨À©´óµ½×î´ó³ß´ç£© windowstate=0 'ƽ³£Ä£Ê½ windowstate£½1 '×îС»¯Ä£Ê½ windowstate=2 '×î´ó»¯Ä£Ê½ 2.˵Ã÷ ÔÚ´°Ìå±»ÏÔʾ֮ǰ£¬WindowState ÊôÐÔ³£³£±»ÉèÖÃΪÕý³£ (0)£¬¶ø²»¹ÜÆä³õʼÉèÖÃÖµ¡£Õâ·´Ó³ÔÚ Height¡¢Left¡¢ ScaleHeight¡¢ScaleWidth¡¢Top¡¢ºÍ Width ÊôÐÔÉè ÖÃÖµÖС£Èç¹û´°ÌåÔÚËüÒѱ»ÏÔʾºó±»Òþ²Ø£¬ÄÇôÕâЩÊôÐÔ½«·´Ó³ÒÔǰµÄ״̬ Ö±µ½´°Ìå±»ÔÙ´ÎÏÔʾ£¬¶ø²»¹ÜÔÚ´ËÆÚ¼ä¶Ô WindowState ÊôÐÔËù×÷µÄÈκθı䡣 È磺 Private Sub Form_Load () Form2.Show ' ÏÔʾ Form2¡£ End Sub Private Sub Form_Resize () ' Èç¹û¸¸´°Ìå±»×îС»¯... If Form1.WindowState = vbMinimized Then ' ...Òþ²Ø Form2¡£ Form2.Visible = False ' Èç¹û¸¸´°Ìå²»ÔÙÊÇ×îС»¯... Else ' ...»Ö¸´ Form2¡£ Form2.Visible = True End If End Sub 3.×÷Óà ÓÃÀ´¿ØÖÆ´°¿ÚµÄÏÔʾ/Òþ²Ø
|
|
×÷Õߣºº¬Ð¦²»Óï ר¼Ò·Ö£º50 ![]() ![]() |
20
Â¥
×¢ÊÍ15£º border_width = (wid - ScaleWidth) / 2 wid ------------- -------- ÊÇForm2µÄ´°Ìå¿í¶È ScaleWidth--------- -------- ÊÇForm2µÄʵ¼Ê¹¤×÷Çø¿í¶È£¬¼´³ýÈ¥±ß¿òµÄ¿í¶È (wid - ScaleWidth) / 2------ ¼´´°Ìå±ß¿ò¿í¶È 1.Ò»¸ö´°ÌåÖÐwidthÓëscalewidthµÄ¾ßÌåÇø±ð widthÊÇÈÝÆ÷µÄ¿í¶È,µ¥Î»ÊÇç¾£¨ºÜСµÄµ¥Î»£© scalewidthÊÇÈÝÆ÷ÀïÃæÄã×Ô¼º¶¨ÒåµÄ¿í¶È£¬±ÈÈç˵ÄãÏë»Í¼£¬±íʾ×î¿í3¹«ÀÄÇôÄã¾Í¿ÉÒÔ×Ô¼ºÓÃÕâ¸öÊôÐÔ¶¨Òå×Ô¼ºµÄ×ø±êϵͳ ¾Ù¸öÀý×Ó: width±ä´óÁËÒ»±¶,ÄÇô´°ÌåÔÚÆÁÄ»ÉϾͿíÁËÒ»±¶ ScaleWidth±ä´óÁËÒ»±¶,´°ÌåÔÚÆÁÄ»ÉϵĴóС²»»áÓб仯 µ«´°ÌåÄÚµÄ×ø±êϵ»áÓб仯 Èç¹ûÔÀ´×ø±êÊÇ(0,0)-(100,100),ÄÇô¾Í»á±ä³É(0,0)-(200,100) Õâʱ,ÄãForm1.PSet (50, 50),Æäʵ¾ÍµÈÓÚScaleWidth¸Ä±äÒÔǰµÄForm1.PSet (25, 50) scalewidthÊÇÒ»¸ö¶ÔÏóÄÚ²¿µÄ×ø±êϵͳµÄÒ»¸ö¿í¶ÈÖµ ¶øwidthÊÇÒ»¸ö¶ÔÏóµÄ¿í¶È£¬ÆäÖµ±ÈscalewidthÒª´ó£¬ÒòΪ°üº¬Íⲿ±ß¿òµÄ³¤¶È Scale±íʾÕâ¸ö´°ÌåµÄ³ý±êÌâÀ¸µÄ×ø±ê·Ö±æÊýÖµ... ¸Ä±äÁËScaleModeºó£¬ScaleWidthºÍScaleHeight¶¼»á×Ô¶¯ËæÖ®±ä»¯£¬µ«WidthºÍHeight²»»á±ä ×Ô¼ºÊÔÊÔ¾ÍÖªµÀÁË£¬ Ò»¸ö´°Ìå print me.width & "----" & me.Scalewidth ,»á·¢ÏÖ£¬µÚÒ»¸öÊýÖµ±ÈµÚ¶þ¸ö´óÒ»µãµã£¬ me.width »ñµÃµÄÊÇ´°Ìå(°üÀ¨±ß¿ò)µÄ¿í¶È£¬me.Scalewidth £¬»ñµÃµÄÊÇ´° Ìå( ²»°üÀ¨±ß¿ò )µÄ¿í¶ÈÇø±ð½ö´Ë¶øÒÑ£¬x=me.Scalewidth /2,µÃµ½µÄÊÇ´°ÌåºáÏòµÄÖÐÐÄλÖã¬ÅäºÏ y=me.scaleheight/2£¬¾Í»ñµÃÁË´°ÌåÖÐÐÄλÖõÄ×ø±ê scalewidth ʵ¼Ê¹¤×÷Çø¿í¶È scaleheight ʵ¼Ê¹¤×÷Çø¸ß¶È scaletop ʵ¼Ê¹¤×÷ÇøµÄÉ϶¥µã scaleLeft ʵ¼Ê¹¤×÷ÇøµÄ×ó¶¥µã width ¿í¶È height ¸ß¶È top É϶¥µã Left ×󶥵㠱ÈÈçformÓµÓÐÒÔÉÏÊôÐÔ£¬Èç¹ûÏë»ñµÃÅ×È¥±ß¿òµÄ³ß´ç£¬ÔòÐèÒªscale ÐÞ¸Äscalewidth ²»»á¸Ä±ä´°ÌåµÄ´óС Ö»¸Ä±ä×ø±êϵͳ ½¨Òé¶ÁһϠ´°ÌåµÄ×ø±êϵͳ¼°scalemode 2.ScaleHeight¡¢ScaleWidth ÊôÐÔ µ±Ê¹ÓÃͼÐη½·¨»òµ |