Thread overview
incorrect name mangling
Jun 27, 2001
Darin Peshev
Jun 28, 2001
Darin Peshev
Jun 28, 2001
Jan Knepper
Jun 28, 2001
Walter
Jun 28, 2001
Darin Peshev
Jun 28, 2001
Jan Knepper
Jun 28, 2001
Darin Peshev
Jun 28, 2001
Jan Knepper
June 27, 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?

June 28, 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?

June 28, 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?

June 28, 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?
June 28, 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?
June 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?
> > >
> > >--

June 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?
> > > >
> > > >--

June 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