how do I export symbols for MFC executable to create a .NET dll reference?
Hello.
I was sent a VC++ 6.0 project and was told to export symbols so that I may call the routines from a .NET project.
How do I export typedef functions, from an MFC app, that ultimately call LoadLibrary for unmanaged code?
I built the project with clr enabled and as a dll. However, no symbols were shown for dumpin and an .exe file was always created. I also attempted to include _declspec(export) for the typedef function DIS_EXTRACT, but this did not work!
Here is some sample code:
void CVobExtractDlg::OnButtonExtract()
{
//only checking
if ( gLibDVD != NULL )
{
FreeLibrary( gLibDVD );
}
gLibDVD = LoadLibrary( "vobextractlib.dll" ) ;
if ( gLibDVD == NULL )
{
AfxMessageBox( "VOBEXTRACTLIB.DLL is not loaded." );
}
if ( gLibDVD != NULL )
{
char szVOB1[260]; szVOB1[0] = '\0';
...
GetDlgItem( IDC_EDIT_V1 )->GetWindowText( szVOB1, 260 );
GetDlgItem( IDC_EDIT_V2 )->GetWindowText( szVOB2, 260 );
...
DIS_EXTRACT Call_Extract = (DIS_EXTRACT)GetProcAddress( gLibDVD, "fuExtract" );
Call_Extract( szVOB1, szVOB2, szVOB3, szVOB4, szVOB5, szVOB6, szVOB7, szVOB8, szVOB9, szVOBOut,
szTimeStart, szTimeEnd, nScanAll, nExtract, GetSafeHwnd() );
}
}
Even if I could export this function, how could this function be used? (Would I need to recreate the GUI data?!?)
As of now, I simply created a C++ .NET wrapper class for use with a Visual C# 2005 console application and used the LoadLibary and typedef function invocation code above. However, I was told to use a valid HWND object for the final parameter to the Call_Extract function! It is NULL since the .NET app is a console application.
Thanks,
William Johnston