Guidance Forums / Rapid-Q Basic / Old RQ .lib files now obsolete

Search 搜索
Home Home

Forum List • Thread List • Reply • Refresh • New Topic • Search • Previous • Next First 1 Last
Message1. Old RQ .lib files now obsolete
Posted by: 2003-05-09 15:20:42
I have posted on Angelfire the new "full" libraries, rapidq32.lib and
rapidqcc.lib which are patched as explained in the text file.
These make your previous RQ libraries obsolete.
The RAM leak and probably other program instabilities due to the
faulty bookkeeping on return pointers, are now completely fixed.
No more RAM bloat with your apps.
Just recompile programs with these libraries (instead of originals).
If you are in the yahoo or other RQ groups, you might want to notify
other RQ programmers of this "land mark" patch and fix.
The download file is at
What do I want in return?  How about, "Thanks, doc!"
Message2. Yes! A BIG THANK YOU is called for.
Posted by: 2003-05-09 21:01:14
Haven`t had time to try the fix yet (I am in an internet cafe) but will try them later. I`m sure they do what they
say, so a big thanks to dr electron and the team responsible for the fix.


Message3. Re: Old RQ .lib files now obsolete
Posted by: guidance 2003-05-09 21:16:37
I got many DNS errors while trying to access your site, can't finish the download :(
Could you help to upload here?

Great Thanks!
Message4. Re: Old RQ .lib files now obsolete
Posted by: Gerard 2003-05-09 22:47:33
Thanks, doc! For this major improvement.

Does this mean that I have to recompile GUI, command-line and CGI sources?


Message5. Re: Yes! A BIG THANK YOU is called for.
Posted by: 2003-05-11 14:44:03
Thanks, guys!  For that great programmer, John White and Gerard, too!
One user of my qxls complained that his apps could eat up as much as 70 megs of RAM (they run long and hard) and essentially stopped his machine.  So now the bug is swashed!  Programs can run decently.  For me, the really makes RQ finally and totally usable.  I told one guy who switched to RQ, "How can you abuse your computer with Visual Studio?  Just installing it is a smack in the face -- with all the registry entries and files!  Programming is hard enough without all that mess!"  Now with these patches, the ram the program uses is the ram it uses; the end/ext sub/function leak is plugged!  I run internet programs 24/7 and would have to restart them every few days just to reinitialze ram usage.  Now they purr along for ever with stable ram usage.  Yea!
Message6. Re: Old RQ .lib files now obsolete
Posted by: 2003-05-11 14:53:09
Dear Guidance:
There was a tremendous amount of traffic to Net Census when the patched RQ libraries were posted.  You should be able to retry and reach the site.  All I ask is that the libraries not be repackaged from the files I made.  That way, people will know what they are getting.  I forgot my password so if you let me know it by email, I can upload to you directly if necessary.  All of my programs on NetCensus use the new libraries and work just great -- no balloning of RAM usage. 
Other debugging of RQ.  1. try to find the exact RQ instruction at fault.
2. Be sure to use my patched libraries to see if the problem is still there. 
Why? I know the pointers I patched are used in end/exit sub/function statements.  But this looks like a scratch-pad RAM which may be used for other storage requirements of other instructions, too.  The non-patched libraries do not maintain these pointers correctly.  Thus, other instructions which may use this same scratch pad memory (e.g. all function API calls) may be affected by the patch.  Do demonstrate the fault with the patched files, so we don't waste time looking at something which is "already fixed".
Message7. Still busy
Posted by: guidance 2003-05-12 09:08:12
Your site is still sooooo busy!

The password for this site is not viewable, it's stored in encrypted format. You can simply retrieve it by "forgot password" form in login page:

Any problems, just post here.
Message8. Re: Still busy
Posted by: 2003-05-13 10:55:01
Sorry, about "so busy", but that just means that this is a LandMark Patch.  As an RQ user (forget I did the patch), this is like day vs night.  Now my programs can be truely professional, so to speak.  So, for me, THIS is what I wanted!  My GypsyProxy is running for days now, with no ram bloat.  I feel happy and lucky to have "captured" this bug and fixed it.
I suspect the scratch pad RAM I fixed may also be used by other RQ components and would not be surprised if other puzzling bugs are also fixed. 
OK, I will do the form to get my password so I can upload the libs here.
Message9. Re: Old RQ .lib files now obsolete
Posted by: 2003-05-13 13:00:47
I've found bugs in your Rapid_fix library.

I'm using Win95OCR2. 128MB Memory.

The bugs is all rapidq source that has DLL call will caused
invalid page fault. I guest it is where the memory leak are
being used on previous Libs.

Also noticed that source code without DLL call compiled
resulting the same size. No advantages on reduce file size
as mentioned except that for source code that has DLL call
to Win32 API will produced 1KB smaller and cause the error
as such:

PREVINST caused an invalid page fault in
module <unknown> at 0000:bff711be.
EAX=81740000 CS=016f EIP=bff711be EFLGS=00210246
EBX=00000000 SS=0177 ESP=84219cbc EBP=84219cc8
ECX=ffffffff DS=0177 ESI=00000000 FS=3dd7
EDX=817436a0 ES=0177 EDI=44888477 GS=0000
Bytes at CS:EIP:
f2 ae f7 d1 8b 75 0c 8b 7d 08 8b c7 fc 51 c1 e9
Stack dump:
81743884 00000000 84219dec 84219efc bff7c953 84219dec 44888477 81743884 81743898 00000000 bff7caa4 81728260 8174383e 8174ef40 00000000 817436a0

This is one of example code I'm trying to re-compile with the
new Rapidq_fix Libs (from RapidQ example archive):
' This program detects if a previous instance of itself is already active.
' For example, you may not want the user to load 2 instances of your program.
' If found, the previous instance is brought to the foreground, even if it
' was minimized it should restore itself.

' Run this program twice to see the affect

CONST rqClassName = "TForm"        '-- Classname for all Rapid-Q programs
CONST myFormName = "Whatever"

                 (className AS STRING, windowName AS STRING) AS INTEGER
DECLARE SUB SetForegroundWindow LIB "USER32" ALIAS "SetForegroundWindow" _
                 (HWnd AS LONG)
DECLARE SUB ShowWindow LIB "USER32" ALIAS "ShowWindow" _
                 (HWnd AS LONG, nCmd AS LONG)

DEFINT hWnd = FindWindow(rqClassName, myFormName)

    ShowMessage ("A previous instance was detected")
    ShowWindow(hWnd, 1)

    Caption = myFormName

So, I put back my old library and compile the code, it's ok
and running.

--- end of bug report. over and out... ---
Message10. Re: Still busy
Posted by: Gerard 2003-05-13 16:49:28
I have seen a difference in the Qlistbox item. The number of lines, which can be showed, decreased.
Line spacing between lines increased.  Lets say, I do not no the exact number, your listbox height is 300 and the direct showed lines are 14, with the new libraries the total number of lines decreased with 3 lines. Not really major, but I have to rewrite a number of applications that looks to specific lines in the listbox. I do not use the scroll option in the listbox.
See it as a comment. I&#8217;m still happy about this patch.



Message11. Re: Still busy
Posted by: yoingco 2003-05-14 00:29:31
Try using CreateMUTEX() - Its more reliable
(I posted an article on the rq yahoo forum
about this a while ago). It outlines why not
to necessarily use FindWindow().

QListBox? I am using it without probs with the new
fixed libs on win98se.........any chance you could post
the code snippet for others to see/check?


Message12. Re: Still busy
Posted by: Gerard 2003-05-19 02:38:13
Hi doc e,

With the latest libraries, the Listbox change has been solved. I recompiled the sources and the "listbox problem" is gone. I read about the reversed high and low byte positions. Probably this was the solution.


Message13. Re: Still busy
Posted by: 2003-05-21 08:36:39
Hi, Gerard.
Yes, I have noticed many "bugs" which previously I solved by simplifying my programs.  Like I have followed "dumb" rules like avoid:
(1) nesting of IFs
(2) nesting of SUBs
(3) long FOR ... NEXT
Maybe all of these and more were also using the same scratch RAM I fixed.  It only takes "one guy" failing to reset the pointers to screw up everything.  So it seems, yes, RQ programmers now may have a "new day".
I spent countless hours debugging RQ code that just didn't work right.  The fix?  Eliminate a long IF ... THEN.  I simulatated that with a single line
IF ... THEN and a Goto ....  That fixed the problem.  Well, my original code was correct.  There was no logical reason why that should have corrected the problem, but it did.  Now I suspect, my patched libraries will be free of numerous problems of this nature that will save, I hope, lots of time for programmers.  Now, I actually look forward to writing more code.  Before it was... "wonder if this will work."  :-)
I am sure there are other bugs, like specific items in Qobjects, that need attention and which are not related to the scratch pad RAM fix I did.

Now, I think,
Forum List • Thread List • Reply • Refresh • New Topic • Search • Previous • Next First 1 Last
© Thu 2021-10-21  Guidance Laboratory Inc. Hits:0