Forum Discussion
FICO
4 years agoCommunity Manager
Mosel does not see a DSO module provided by a C++ application - could Windows security be the problem?
We have an old C++ application that uses Xpress optimizer internally. It works by calling Mosel using `XPRMrunmod()`. In addition, it uses callbacks defined in the C++ application via `XPRMdsofct`, ...
FICO
4 years agoCommunity Manager
There does not seem to be anything unusual in your code extracts.
Do you define XPRM_NICOMPAT before includuding xprm_ni.h? This defines the version of the API your module is using (and this could prevent loading of the module with an older release).
To be compatible with Mosel 5.0 (Xpress 8.6) this looks as follows:
#define XPRM_NICOMPAT 5000000
#include "xprm_ni.h"You are right, the documentation of 'XPRMregstatdso' is indeed incomplete - this will be fixed in next release. Possible values are:
0 Registration is successful
1 The module was already registered as a static module
2 Module initialisation function failed
3 Module not compatible with the running version of Mosel
4 Loaded library is not a Mosel module
> I am also worried about Xpress versions, since they often run an older version of Xpress
Ascending compatibility is always guaranteed (i.e. something built for 8.6 will work on 8.14) - this is not the case in the other direction. It would be safer for your customers to upgrade to something newer (or for you to build with 8.6).