Date:  04/02/2004 12:13:03 PM Msg ID:  001939
From:  FoxWeb Support Thread:  001934
Subject:  Re: DLL causing Foxweb to crash?
You are right about the fact the CLEAR DLLS seems to clear all DLLs in VFP 6.  What's the reason why you want to clear your DLL declaration?  It does not really use any resources, so you can simply comment out the CLEAR DLLS statement.

FoxWeb Support Team
support@foxweb.com email

Sent by Joe Cosby on 04/02/2004 11:43:49 AM:
Is there a complete list of DLL's that foxweb DECLARE's by any chance?
 
I am looking into this in more detail ... we are running Foxpro 6.0 and I was using the 7.0 docs, stupid, granted ... the CLEAR DLLS call is apparently clearing all DLLs in 6.0
 
If I don't do the CLEAR I get a memory leak, but then I will have to redeclare all of the DLLs.  I did "DISPLAY DLLS" from a running Foxweb session and there are 20 alltogether ...
 
 
Sent by FoxWeb Support on 04/01/2004 04:56:13 PM:
The function 'urlencodefunction' is contained in fwdll.dll and is declared using the following command:
 
DECLARE INTEGER UrlEncode IN fwdll.dll AS UrlEncodeFunction STRING @
It's possible that there's a naming conflict, or it's possible that the call to CLEAR DLLS clears more than it should.  I would start by removing this call and see if it corrects the problem.  You can also re-declare the function after you are done with your blowfish calls.

FoxWeb Support Team
support@foxweb.com email

Sent by Joe Cosby on 04/01/2004 04:17:50 PM:
Hayulp ...
 
I have built a DLL with functions for Blowfish encryption.  Testing this from Foxpro, everything works fine.  But now when I do calls to the same DLL from Foxweb, I am getting this weird error:
 
Error #:      1
Message:  File 'urlencodefunction.prg' does not exist.
Program:  procedure classserver1.urlencode fwserverobject.fxp
Line #:  427
Line:  ...

I checked the error log and the prev_prog is "urlencode.fxp", which is not something of ours.
 
In a little more detail;  from the foxweb script, a class object is created and in the constructor it executes:
  DECLARE INTEGER Blowfish_blowfishInit IN Blowfish
  DECLARE Blowfish_setPassword IN Blowfish INTEGER bfPointer, STRING @ newPword
  DECLARE STRING Blowfish_encrypt IN Blowfish INTEGER bfPointer, STRING @ encryptText, INTEGER nTextBytes
  DECLARE STRING Blowfish_decrypt IN Blowfish INTEGER bfPointer, STRING @ encryptText, INTEGER nTextBytes
  DECLARE Blowfish_destroy IN Blowfish INTEGER bfPointer
  
  THIS.nBlowfishPointer = Blowfish_blowfishInit()
 
Then the script calls Blowfish_encrypt() through the object and afterwards RELEASE the class object, which calls Blowfish_destroy() and
 
CLEAR DLLS "Blowfish"
 
I'm really not sure where the conflict is occuring in all this ... whether I have stomped a name somewhere or something in clearing the DLL is causing a problem with DLLs Foxweb is using for some weird reason ... or what.
 
Thanks for any help, I am kind of under the gun on this project and didn't anticipate anything like this ...