s-news
[Top] [All Lists]

Re: Problem with attaching S.dll in V7.0

To: <Horace.Tso@pgn.com>
Subject: Re: Problem with attaching S.dll in V7.0
From: <david.jessop@ubs.com>
Date: Thu, 18 Aug 2005 11:30:59 +0100
Cc: <s-news@lists.biostat.wustl.edu>
Thread-index: AcWj3+ny/fL85rNTR2qfga5mC+P44A==
Thread-topic: Problem with attaching S.dll in V7.0
Horace,
 
If you have an older version of Visual Studio there used to be a program called DEPENDS.EXE which can be used to analyse DLLs to see what (unsurprisingly) they depend on, what entry points they have etc.  That might give you some clues. Note that it will probably be looking for SQPE.DLL which it can't find in Depends but this is nothing to worry about.  However, this does suggest that recompiling, ensuring that in Visual C you are looking at the right library files (V7 rather than 6.2) could be a good idea.
 
David
 
-----Original Message-----
From: Horace Tso [mailto:Horace.Tso@pgn.com]
Sent: 17 August 2005 18:53
To: Prof Ripley
Cc: s-news@lists.biostat.wustl.edu
Subject: Re: Problem with attaching S.dll in V7.0

Thank you Professor Ripley. The source file of the DLL starts with four includes,
 
#include "S.h"
#include "s_newio.h"
#include "sconnect.h"
#include "Myproject.h"
 
In the last header file, the custom functions are wrapped around by
 
extern "C" {
__declspec(dllexport) s_object* __stdcall myfunction( s_object*);
................
}
I do not have a module defintion file. Although I have the sconnect header up there, I do not use any Splus function.
 
One other observation. This's apparently **not** a v7.0 specific issue. Yesterday I went over to another PC with Splus 6.2 on it and tried attaching a chapter on the local drive with the identical DLL. It has the same complaint.
 
Horace W. Tso
 
 
 
 
 

>>> Prof Brian Ripley <ripley@stats.ox.ac.uk> 08/16/05 9:52 PM >>>
Note this says `procedure'.  I believe it is not saying that the DLL could
not be found, but that an entry point used by the DLL could not be found,
probably in another DLL it is linked to.

In particular, if the DLL contains calls into S-PLUS, it may well need to
be recompiled.  Using DUMPBIN (part of VS) or pedump (available on the
net) will show you what your S.dll is importing.

On Tue, 16 Aug 2005, Horace Tso wrote:

> Dear list,
>
> I have a S.dll with a bunch of C routines that I regularly call from
> Splus. These C functions were compiled and built with Visual Studio .NET
> 2003. They have been working just fine under 6.2.
>
> When I tried attaching a directory with this S.dll in it, i got the error,
>
> "F:\sPlus\....\S.dll: The specified procedure could not be found."
>
> ...in spite of the fact that the file S.dll is there and is visible
> v6.2. (My F: drive is out on the corporate network, but I've tried
> copying it over to a directory in my local C: and I still got the same
> error msg.)
>
> Is there something i have to set to make it visible? some environmental
> variables perhaps? a switch in the .First?

--
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
This communication is issued by UBS AG or an affiliate ("UBS") to 
institutional investors only. It is for informational purposes and is 
not guaranteed as to accuracy, nor is it a complete statement of the 
financial products or markets referred to. Opinions expressed are 
subject to change without notice and may differ or be contrary to the 
opinions or recommendations expressed by other business areas or 
groups of UBS as a result of using different assumptions and criteria. 
UBS may maintain long or short positions in the financial instruments 
referred to and may transact in them as principal or agent. Unless 
stated specifically otherwise, this is not a recommendation, offer or 
solicitation to buy or sell and any prices or quotations contained 
herein are indicative only. UBS may provide investment banking and 
other services to, and/or its officers/employees may serve as 
directors of, the companies referred to in this material. To the 
extent permitted by law, UBS does not accept any liability arising 
from the use of this communication. Additional information or UBS 
Investment Research is available upon request.

Copyright 2005 UBS.  All rights reserved.  Intended for recipient only 
and not for further distribution without the consent of UBS.
<Prev in Thread] Current Thread [Next in Thread>