Let me try this again ... this stupid web-mail application ate the contents of my previous reply to this. :(
Edi Weitz edi-at-agharta.de |RDNZL-devel/via Sneakemail| wrote:
On Sat, 18 Feb 2006 12:07:34 -0500, "Dan Muller" s8ctxw402@sneakemail.com wrote:
Hrrrm. Since you're using Managed C++, I'm not able to compile the RDNZL DLL. The solution converts up to VS8 OK. But, as you probably know, Managed C++ was replaced by C++/CLR. The conversion adds the necessary compiler option to support the old syntax, but the multi-threaded run-time library setting is incompatible with it (Configuration Properties/C++/Code Generation/Runtime library). Oh well. Just providing this as an FYI.
Eeek! Does this mean I can throw away RDNZL if I upgrade to the new Visual Studio? Actually, I have the CDs/DVDs already lying around here but didn't find the time to install it yet.
I'd be VERY happy if someone knowledgeable enough with Managed C++ and C++/CLR could enlighten me...
Good news, sort of. I found out that you can use the /MD (Multi-Threaded DLL) switch instead of /MT (Multi-Threaded). At least, it compiles. The downside is that the file MSVCR80.DLL must be available at run-time.
A correction on my terminology: It's C++/CLI, not C++/CLR.
I've looked fairly extensively at C++/CLI while studying the possibility of porting some C++ code at my day job. Syntactically, it's a vast improvement over Managed C++. If you ever decide you'd like to port RDNZL to it, let me know. Schedule permitting, I'd be glad to help, or even just do it for you -- it's not a very large project.
;; This approach doesn't work ;(import-types "ClassLibrary1")
(import-types "ClassLibrary1" "Class1")
works for me if the DLL is in the LispWorks folder.
I haven't had time to figure this out yet. I did have the DLL there, otherwise it wouldn't have loaded the other way.
(declare (special *coerce-double-floats-to-single*))
That's not necessary. The variable is globally special.
Thanks!