Import libraries for MSVC++ compiled dlls

Sergey Okhapkin sos@buggy.prospect.com.ru
Tue Nov 25 15:25:00 GMT 1997


Hi!

It seems to me, it's possible to use gcc compiler with msvc++ compiled 
dlls. The def file for a dll must have the following form:

LIBRARY msvc_library
EXPORTS
gcc_mangled_name1=msvc_mangled_name1
gcc_mangled_name2=msvc_mangled_name2
...

I compiled a working demangler for msvc++ (download 
ftp://ftp.microsoft.com/softlib/mslfiles/bsc200.exe , you'll need msvc to 
use this library):

bash$ nm MFC40.LIB|sed -n '/^........ [T] /s/^........ [T] 
//p'|./unmangle.exe

AFX_CLASSINIT::AFX_CLASSINIT(struct CRuntimeClass *)
AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *)
AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK()
AFX_MODULE_PROCESS_STATE::AFX_MODULE_PROCESS_STATE()
AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (*)(struct HWND__ *,unsigned 
int,uns
igned int,long),unsigned long)
AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (*)(struct HWND__ *,unsigned 
int,uns
igned int,long),unsigned long,int)
AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE()
CAnimateCtrl::CAnimateCtrl()
CArchive::CArchive(class CFile *,unsigned int,int,void *)
CArchivePropExchange::CArchivePropExchange(class CArchive &)
CArchiveStream::CArchiveStream(class CArchive *)
CAsyncSocket::CAsyncSocket()
CBitmap::CBitmap()
CBitmapButton::CBitmapButton()
CBlobProperty::CBlobProperty(void *)
CBrush::CBrush(int,unsigned long)
CBrush::CBrush(unsigned long)
CBrush::CBrush(class CBitmap *)
CBrush::CBrush()
CButton::CButton()
CByteArray::CByteArray()
CCheckListBox::CCheckListBox()
...

Now we need a gcc-compatible mangler. Any ideas?

--
Sergey Okhapkin, http://www.lexa.ru/sos
Moscow, Russia
Looking for a job

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list