Hi,
I am currently trying to prepare "my migration" to Windows 64 + Excel 10 - 64 bits, and consequently, I am trying to build QuantlibXL.xll for a 64 bits platform. After downloading the latest available package, I have been able to build the xll under VS 2010 Express for a 32 bits platform. Thanks to the users list, I have also been able to build for a 32 bits platform in VS 2012 Express, which I will be using from now on. Unfortunately I am not successful in building for a 64 bits platform. The entire solution compiles fine after I made a few modifications to the source, related to conversions (cf. CppToLibrary)... again, thanks to the users list... Hence QuantLibAddinStatic-vc110-mt-s-1_2_0.lib and QuantLibAddinStatic-vc110-mt-s-1_2_0.exp are produced. BUT I then get plenty of linking errors like, as an example, "xlsdk-vc110-mt-s.lib (framework.obj) : error LNK 2001: unresolved external symbol Excel4"' or "QuantLibAddinStatic-vc110-mt-s-1_2_0.exp : error LNK2001: unresolved external symbol _ohVersion. I guess I must be missing something in my compiler settings but I can't find out what and I don't get why it works when targeting a 32 bits platform but not when targeting a 64 bits platform... I am getting desperate ;-) and I read through the various exchanges in the users list that some were successful in compiling for a 64 bits platform... So if anyone can help... Thanks in advance Vincent ------------------------------------------------------------------------------ WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi all,
I am making a second attempt at getting some help on this... I am still failing to complete a full build of the QuantLibXL.xll when targeting a 64 bits platform... Since I wrote the below message, I have managed to get rid of some of my "unresolved external..." linking errors. I have replaced some explicit direct includes in the xlsdk project by their specifically 64 bits equivalents (namely xlcall.h and xlcall32.lib) and this fixed the "xlsdk-vc110-mt-s.lib (framework.obj) : error LNK 2001: unresolved external symbol Excel4" errors. Hence, I have now narrowed down the list of unresolved externals errors to 51 errors. They are all related to linking between the QuantLibXLStatic project and the ohxllib project. To be specific I get: QuantLibAddinStatic-vc110-mt-s-1_2_0.exp : error LNK2001: unresolved external symbol _ohBoostVersion QuantLibAddinStatic-vc110-mt-s-1_2_0.exp : error LNK2001: unresolved external symbol _ohEnumeratedClass QuantLibAddinStatic-vc110-mt-s-1_2_0.exp : error LNK2001: unresolved external symbol _ohEnumeratedPair ...etc... for the 51 functions exported by ObjectHandler-xllib-vc110-mt-s-1_2_0.lib. I really can't find out what I am still missing in my settings. Once again, I can smoothly fully build the entire solution that I have downloaded when I target a 32 bits platform without altering anything neither in the source nor in the VC 2012 Express settings... I am desperate for help... Thanks Le 30 janv. 2014 à 12:23, Vincent Touratier <[hidden email]> a écrit : Hi, I am currently trying to prepare "my migration" to Windows 64 + Excel 10 - 64 bits, and consequently, I am trying to build QuantlibXL.xll for a 64 bits platform. After downloading the latest available package, I have been able to build the xll under VS 2010 Express for a 32 bits platform. Thanks to the users list, I have also been able to build for a 32 bits platform in VS 2012 Express, which I will be using from now on. Unfortunately I am not successful in building for a 64 bits platform. The entire solution compiles fine after I made a few modifications to the source, related to conversions (cf. CppToLibrary)... again, thanks to the users list... Hence QuantLibAddinStatic-vc110-mt-s-1_2_0.lib and QuantLibAddinStatic-vc110-mt-s-1_2_0.exp are produced. BUT I then get plenty of linking errors like, as an example, "xlsdk-vc110-mt-s.lib (framework.obj) : error LNK 2001: unresolved external symbol Excel4"' or "QuantLibAddinStatic-vc110-mt-s-1_2_0.exp : error LNK2001: unresolved external symbol _ohVersion. I guess I must be missing something in my compiler settings but I can't find out what and I don't get why it works when targeting a 32 bits platform but not when targeting a 64 bits platform... I am getting desperate ;-) and I read through the various exchanges in the users list that some were successful in compiling for a 64 bits platform... So if anyone can help... Thanks in advance Vincent ------------------------------------------------------------------------------ Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Vincent,
> I am making a second attempt at getting some help on this... > > I am still failing to complete a full build of the QuantLibXL.xll when > targeting a 64 bits platform... I made an initial attempt to compile QuantLibXL for 64-bit, this was unsuccessful, partly because one of the project constraints was to use VC 2008. In the end I was forced to admit defeat and to downgrade to 32-bit Excel. When I have time I will reattempt the 64-bit build with VC 2012, but in the meantime the best hope is for someone who has already succeeded with the 64-bit build to provide some documentation... Bon courage. Kind Regards, Eric -- =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Vincent Touratier
Hi Vincent
This was a while back and I'm not sure if you're still interested, but I managed to get past this step by modifying ohxl/functions/export.hpp to removing the leading '_' from all of the export statements. Didn't play nicely with the 64 bit name mangling conventions. I've got the xll built now, though it's crashing immediately on loading in Excel 2013. Richard |
Hi Richard,
I am still interested and I thank you very much for your answer. I have just tried what you suggested and indeed the xll is now building. Unfortunately, just as you describe it, it is crashing immediately on loading in Excel... (Unlike you, I use Excel 2010 64 bits). Still... thanks again as I have now moved one step forward... Vincent Le 12 mars 2014 à 12:44, Richard Gould <[hidden email]> a écrit : Hi Vincent This was a while back and I'm not sure if you're still interested, but I managed to get past this step by modifying ohxl/functions/export.hpp to removing the leading '_' from all of the export statements. Didn't play nicely with the 64 bit name mangling conventions. I've got the xll built now, though it's crashing immediately on loading in Excel 2013. Richard -- View this message in context: http://quantlib.10058.n7.nabble.com/Troubles-building-QuantLibXL-xll-for-64-bits-platform-tp14927p15062.html Sent from the quantlib-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Vincent I solved the crash and now have it working. In objecthandler/xlsdk/framewrk.cpp you need to change line 98 from: int xlret = Excel4v(xlfn, pxResult, count, (LPXLOPER FAR *)(&count+1)); to: int ver = XLCallVer(); va_list ppxArgs; LPXLOPER px; int i; va_start(ppxArgs, count); for (i = 0; i<count; i++) { px = va_arg(ppxArgs, LPXLOPER); if (px == NULL) { FreeAllTempMemory(); return; } } va_end(ppxArgs); va_start(ppxArgs, count); int xlret = Excel4v(xlfn, pxResult, count, (LPXLOPER *)ppxArgs); va_end(ppxArgs); There's probably a neater way. I just lifted this from the latest Excel SDK examples. Cheers Richard Hi Richard, ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Richard, Thank you very very very very much for that. I had been stuck for a couple of months ! I am not sharp enough in C++ to understand your solution but it is working just fine for me now. I can now test all my Excel spreadsheets. Have you experienced any stability or performance issues on your side ? Again I am truly grateful... Kind regards Vincent Hi Vincent I solved the crash and now have it working. In objecthandler/xlsdk/framewrk.cpp you need to change line 98 from: int xlret = Excel4v(xlfn, pxResult, count, (LPXLOPER FAR *)(&count+1)); to: int ver = XLCallVer(); va_list ppxArgs; LPXLOPER px; int i; va_start(ppxArgs, count); for (i = 0; i<count; i++) { px = va_arg(ppxArgs, LPXLOPER); if (px == NULL) { FreeAllTempMemory(); return; } } va_end(ppxArgs); va_start(ppxArgs, count); int xlret = Excel4v(xlfn, pxResult, count, (LPXLOPER *)ppxArgs); va_end(ppxArgs); There's probably a neater way. I just lifted this from the latest Excel SDK examples. Cheers Richard Hi Richard, ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Richard Gould
Hi Richard,
> I solved the crash and now have it working. Thanks for sharing that. I am in the process of packaging up the 1.4 release, could I include this change in that? Is it one piece of source code that would work in both 32- and 64-bit? Thanks, Eric -- =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |