[Developers] Visual C++ and ADMB DLLs in general
Arni Magnusson
arnima at hafro.is
Fri May 22 05:57:19 PDT 2009
Thanks Dave, for your explanations. I imagine this is tricky business. At
least ADMB has DLL support for MinGW GCC 3.4.5, something ADMB-IDE will
offer. How about the current versions of Microsoft Visual C++, can anyone
check? This works for Microsoft Visual C++ 6.0:
tpl2cpp -dll simpdll
cl /c /GX /O2 -D__MSVC32__ -DOPT_LIB -I. -I%ADMB_HOME%/include
simpdll.cpp
cl simpdll.obj admod32.lib adt32.lib ado32.lib /link
/libpath:%ADMB_HOME%/lib /dll /export:simpdll /out:simpdll.dll
x<-rep(0,100); f<-0
dyn.load("simpdll.dll")
.C("simpdll", as.integer(length(x)), as.double(x), as.double(f), "")
I have not used DLLs to hook ADMB up with other programs in my work, only
executables. But it seems like a practical feature for analyzing a large
number of model runs.
In a recent bootstrap analysis, I created millions of ADMB input data
files, got millions of ADMB output files, and boiled the results down to
thousands of summary files. Simulation studies are another example.
Since I created the bootstrap datasets in R, and then analyzed the results
in R, a DLL would have streamlined the workflow considerably (no files
necessary). On the other hand, I'm not sure how easy it would have been to
reimplement the model using dll_data_types.
Extending ADMB DLL support to other compilers/platforms/admbre sounds like
a long-term goal, whose priority will depend both on user feedback and
feasibility. The current support is enough to demonstrate an impressive
capability to R users on Windows, a substantial "market group" for the
ADMB Project.
Arni
On Thu, 21 May 2009, dave fournier wrote:
> That was exactly the symptom of the problem. I hadd DLL's that worked
> with compiler A but not with compiler B. then other ones with with B but
> not A. I think it has something to do with global variables and reentry
> problems with DLL's.
>
> glmmADMB is an exe that gets used by R through the system() function.
> this is better because if the ADMB program crashes R still runs. Much
> better for development.
>
> --
> David A. Fournier
> P.O. Box 2040,
> Sidney, B.C. V8l 3S3
> Canada
> Phone/FAX 250-655-3364
> http://otter-rsch.com
>
More information about the Developers
mailing list