home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / arrays / hugearay / history.txt next >
Encoding:
Text File  |  1992-09-11  |  4.1 KB  |  124 lines

  1. HUGEARR.DLL
  2. History of Public Modifications
  3.  
  4. Microsoft Customer Support uploaded to the MSL a DLL to support huge
  5. arrays from Visual BASIC v1.0.  Because the source was included, and
  6. no copyright posted, HUGEARR.DLL has a lot of educational potential.
  7. I found a small bug in HUGEARRY.DLL, or rather an oversight, in that
  8. HugeUbound was defined as an integer function, thus preventing its
  9. use on...huge arrays.  The bug fix was simple and this ZIP file
  10. contains the modified files.  It occurred to me that there were a
  11. number of array related functions that might be added to the DLL
  12. so I started this history file in hopes that modifications could
  13. be made in one place and re-posted over this file.
  14. Jonathan Zuck, User Friendly, Inc. 06/26/91
  15.  
  16. ========================================================================
  17.                                 06/10/91
  18. ========================================================================
  19. 06/10/91        Original Files:         MS Customer Support
  20.  
  21. HUGEARR.BAS     05/13/91
  22. HUGEARR.C       06/10/91
  23. HUGEARR.DEF     05/09/91
  24. HUGEARR.DLL     06/10/91
  25. HUGEARR.H       05/10/91
  26. HUGEARR.TXT     06/04/91
  27. MAKEFILE        05/10/91
  28.  
  29.  
  30. ========================================================================
  31.                                 06/26/91                                 
  32. ========================================================================
  33. 06/26/91        HUGEUBOUND now returns LONG     User Friendly, Inc.
  34.  
  35. Changed Files:
  36.  
  37. HUGEARR.BAS     06/26/91
  38. HUGEARR.TXT     06/26/91
  39. HUGEARR.C       06/26/91
  40. HUGEARR.H       06/26/91
  41. HUGEARR.DLL     06/26/91
  42.  
  43. New Files:
  44.  
  45. History.TXT     06/26/91
  46.  
  47. Remarks:
  48. The purpose of HUGEARR.DLL was to support huge arrays.  However,
  49. HugeUbound was defined as an integer function, making it impossible
  50. to get consistent results when the array had more than 32k elements.
  51. The changes here are quite simple:
  52.  
  53. HUGEARR.BAS
  54.         Changed the Declare statment for HugeUbound
  55. HUGEARR.TXT
  56.         Modified HugeUbound example
  57. HUGEARR.C
  58.         Changed the function return to LONG
  59.         Changed the ubound variable declaration to LONG
  60. HUGEARR.H
  61.         Changed the HugeUbound declaration to LONG
  62. HUGEARR.DLL
  63.         Re-built using NMAKE
  64.  
  65.  
  66.  
  67. ========================================================================
  68.                                 09/06/92                                 
  69. ========================================================================
  70. 09/06/92
  71.  
  72. Changed Files:
  73. ------------------------
  74. HUGEARR.C       09/10/92
  75. HUGEARR.DLL     09/06/92
  76. HISTORY.TXT     09/11/92
  77.  
  78.  
  79. Remarks:
  80. ========
  81. HugeRedim not working correctly.  
  82.  
  83. Gary Garrison reported this bug on CIS on 9/2/92:
  84.  
  85.    <  If I dimension the same array with an upper bound of     >
  86.    <  5,000 then redimension the array with an upper bound of  >
  87.    <  10,000 using HugeRedim I get an error (RC=-1).           >
  88.  
  89. Besides the Error code, my own experience was that the array contents
  90. were being preserved, but after the HugeReDim, additional records added
  91. beyond the UBound of the old array size could not be accessed.  Instead,
  92. when doing a GetHugeEL on those new "tail end" records, I kept getting
  93. the last record of the *old* array instead.
  94.  
  95. Gary's fix is as follows:
  96. ---------------------------
  97.  
  98. Excerpt from Gary's message on CIS:
  99.  
  100.      I started to try out what you suggested and noticed the flags on the
  101.      GlobalAlloc and GlobalReAlloc were combined as follows:
  102.  
  103.        GMEM_MOVEABLE || GMEM_ZEROINIT
  104.  
  105.        They should be:
  106.  
  107.        GMEM_MOVEABLE | GMEM_ZEROINIT
  108.  
  109.        or to make it easier, just GHND which is a combination of the two.
  110.  
  111.        BTW.. this is the way it comes with the PTK so everyone using it from the PTK
  112.       would have the same problem.
  113.  
  114.        Changed the GlobalAlloc and GlobalReAlloc to just use GHND as a flag and
  115.       everything works fine.
  116.  
  117.  
  118. Hope Gary's fix helps you as much as it did me.  Best Regards,
  119.  
  120.                                  Bob Scherer, Newport Beach CA
  121.                                  CIS#: 76237,514
  122.  
  123. ========================================================================
  124.