c++ - incorrect name mangling
- Darin Peshev <darp usa.net> Jun 27 2001
- Darin Peshev <darp usa.net> Jun 27 2001
- Jan Knepper <jan smartsoft.cc> Jun 27 2001
- "Walter" <walter digitalmars.com> Jun 27 2001
- Darin Peshev <darp usa.net> Jun 28 2001
- Jan Knepper <jan smartsoft.cc> Jun 28 2001
- Darin Peshev <darp usa.net> Jun 28 2001
- Jan Knepper <jan smartsoft.cc> Jun 28 2001
I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
Jun 27 2001
I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
Jun 27 2001
Which .M$ DLL's do you have to use? Also... 'bool' was added later to the compiler. I guess at that time code compatibility was not such a strong focus anymore. Anyways, the person to talk about this should be Walter I guess. Jan Darin Peshev wrote:I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
Jun 27 2001
I think I can get that fixed. The reason it is different is because we added support for bool before Microsoft did. -Walter Jan Knepper wrote in message <3B3A86FE.4B87CDC3 smartsoft.cc>...Which .M$ DLL's do you have to use? Also... 'bool' was added later to the compiler. I guess at that time code compatibility was not such a strong focus anymore. Anyways, the person to talk about this should be Walter I guess. Jan Darin Peshev wrote:I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
Jun 27 2001
Hi, May be you know what QT is. If not go to www.trolltech.com. They have free version of QT framework - free in sense that it can be used free for any open source projects and for evaluation. Stupid thing in this case is that TrollTech released only .libs and .dlls for Microsoft VC++ 6.0 compiler. DOes it make sense to release free software can work with most comer$ial compiler? I was able to run first few examples of the toolkit with Digital Mars and I got excited because this is first decent combination of C++ compiler and fully object oriented GUI (the best one if you ask me). Imagine creating applications not using Win32 api or MFC. KDE on linux is so successful because of QT. What you think about this? Is this a good reason to improve compatibility with M$ VC? Best Regards, Darin Walter wrote:I think I can get that fixed. The reason it is different is because we added support for bool before Microsoft did. -Walter Jan Knepper wrote in message <3B3A86FE.4B87CDC3 smartsoft.cc>...Which .M$ DLL's do you have to use? Also... 'bool' was added later to the compiler. I guess at that time code compatibility was not such a strong focus anymore. Anyways, the person to talk about this should be Walter I guess. Jan Darin Peshev wrote:I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
Jun 28 2001
Have you tried to run IMPLIB on the .DLL's to create new .LIB's? Yes I have head about QT. Never visited http://www.trolltech.com/ though. I think the proper solution would be to get TrollTech to compile QT with Digital Mars C++! <g> For now indeed it would help if you could use the M$ VC-- libraries. Jan Darin Peshev wrote:Hi, May be you know what QT is. If not go to www.trolltech.com. They have free version of QT framework - free in sense that it can be used free for any open source projects and for evaluation. Stupid thing in this case is that TrollTech released only .libs and .dlls for Microsoft VC++ 6.0 compiler. DOes it make sense to release free software can work with most comer$ial compiler? I was able to run first few examples of the toolkit with Digital Mars and I got excited because this is first decent combination of C++ compiler and fully object oriented GUI (the best one if you ask me). Imagine creating applications not using Win32 api or MFC. KDE on linux is so successful because of QT. What you think about this? Is this a good reason to improve compatibility with M$ VC? Best Regards, Darin Walter wrote:I think I can get that fixed. The reason it is different is because we added support for bool before Microsoft did. -Walter Jan Knepper wrote in message <3B3A86FE.4B87CDC3 smartsoft.cc>...Which .M$ DLL's do you have to use? Also... 'bool' was added later to the compiler. I guess at that time code compatibility was not such a strong focus anymore. Anyways, the person to talk about this should be Walter I guess. Jan Darin Peshev wrote:I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
--
Jun 28 2001
IMPLIB only generates .LIB from .DLL There is no way to to change names exported though. To go around this name mangling problem one can use IMPDEF (this utility is from Borland - it is part of their free compiler package too) to generate .DEF file from .DLL. Resulting .DEF file can be edited with new function names (.DEF IMPORTS section specifies mapping between function names as seen by user program and function cardinal numbers or names in .DLL) and then by using IMPLIB new .LIB file can be generated - this time with the proper names. May be you should consider to add something like IMPDEF to Digital Mars distribution. Something similar can be achieved by LIBUNRES.EXE - it can print all publics - but there is no way to print out cardinal numbers. It would be a good idea to format output of IMPDEF to be ready for IMPLIB. Ok, no more dreaming... It will be nice if TrollTech releases libraries for Digital Mars but I doubt that this will happen. It is much easier to change Digital Mars than to change every library around to be compatible with DigitalMars. Don't you think so? Jan Knepper wrote:Have you tried to run IMPLIB on the .DLL's to create new .LIB's? Yes I have head about QT. Never visited http://www.trolltech.com/ though. I think the proper solution would be to get TrollTech to compile QT with Digital Mars C++! <g> For now indeed it would help if you could use the M$ VC-- libraries. Jan Darin Peshev wrote:Hi, May be you know what QT is. If not go to www.trolltech.com. They have free version of QT framework - free in sense that it can be used free for any open source projects and for evaluation. Stupid thing in this case is that TrollTech released only .libs and .dlls for Microsoft VC++ 6.0 compiler. DOes it make sense to release free software can work with most comer$ial compiler? I was able to run first few examples of the toolkit with Digital Mars and I got excited because this is first decent combination of C++ compiler and fully object oriented GUI (the best one if you ask me). Imagine creating applications not using Win32 api or MFC. KDE on linux is so successful because of QT. What you think about this? Is this a good reason to improve compatibility with M$ VC? Best Regards, Darin Walter wrote:I think I can get that fixed. The reason it is different is because we added support for bool before Microsoft did. -Walter Jan Knepper wrote in message <3B3A86FE.4B87CDC3 smartsoft.cc>...Which .M$ DLL's do you have to use? Also... 'bool' was added later to the compiler. I guess at that time code compatibility was not such a strong focus anymore. Anyways, the person to talk about this should be Walter I guess. Jan Darin Peshev wrote:I'm trying to go away from m$ vc. But I stil have to use Micro$oft's .dlls. Anyway I saw that you state on the Digital Mars web site that digital mars follows microsoft specs for name mangling and I decided to mention this bug. Compiler is certainly not compatible with VC 5.x because _N is not new. (try TDUMP or something similar on MSVCP50.DLL) -----Original Message----- From: Jan Knepper [mailto:jan smartsoft.cc] Sent: Wednesday, June 27, 2001 4:52 PM To: Darin Peshev; Walter Bright Subject: Re: incorrect name mangling Darin, Why does the name mangling have to be 100% compatible with M$ VC-- name mangling for you? Anyways, I think the compiler is compatible up to VC-- 5.x and not anymore with 6.0 and later... For other inquiries, please use the newsgroups at news.digitalmars.com Thanks! Jan Darin Peshev wrote:I can not use Digital Mars because of small defect. Its name mangling should be 100% compatible with Microsoft but there is diference in mangling 'bool' type. Microsoft Visual Studio 6.0/7.0 (older versions probably too) mangle 'bool' as '_N' Digital Mars puts '_Y' when bool type is enabled with -Ab option. Can this be corrected? Best Regards, Darin PS is Digital Mars open source?
--
Jun 28 2001
Darin Peshev wrote:It is much easier to change Digital Mars than to change every library around to be compatible with DigitalMars. Don't you think so?
Don't know... The best thing still would be to compile the original source into .LIB/.DLL with the same compiler as the rest of the stuff is build when compiling C++ that is... Jan
Jun 28 2001