using IMSL from VC++

using IMSL from VC++


I'm a newbie to mixed language environments and have run into trouble trying to call an IMSL routine from Visual C++ 6. I've read the documentation and samples but can't get a simple program to link. It complies OK but get a whole lot of likner error messages (87 in fact) that look something like:

imsl.lib(DTRSV.obj) : error LNK2001: unresolved external symbol _E1PSH@8
imsl.lib(DGER.obj) : error LNK2001: unresolved external symbol _E1PSH@8


The header of the C++ code has

extern "C" {
void __stdcall DRLINE(long*, double*, double*, double*, double*, double*);

I've used 'imsl.h' and tried to link with df all with the same problem.



John R

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Are you also linking against the three IMSL libraries? The declaration you show isn't the one for the routine in the error message.


Retired 12/31/2016

Thanks Steve,

This is a strange one. I did as suggested and link all three libraries. This threw up more link-time errorswith complaints about not finding __OtsMove, __FIsqrt and a whole lot of others.

So I added a whole lot of other libraries in for good measure dfor.lib dfqwin.lib dfqw_sdi.lib. Each time old errors were fixed but new ones were added! Finally I was left one error:

dfqwin.lib(qwkentry.obj) : error LNK2001: unresolved external symbol __beginthreadex

Is there no simple way to add IMSL to C++? Or am I too dumb? I feel like it after playing around with this for a few days.


Get rid of all the df* libs you added and replace them with dformt.lib and dfconsol.lib.


Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today