Sudip, What ?...@#... is this? :)
ofn.lStructSize = 76;
In BCC and in MinGW !!! .- OPENFILENAME ofn; ZeroMemory(&ofn, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); Sorry, it's a joke, remember that C don't initialize anything eg nil. -- Xavi Sudip Bhattacharyya escribió:
Hi All, I use following code for Common Dialog boxes. When I call the functon CSaveFile() or COpenFile() compiled with BCC, it gives error, but runs fine when compiled with Mingw compiler. #pragma BEGINDUMP #include "windows.h" #include "hbapi.h" HB_FUNC( CSAVEFILE ) { OPENFILENAME ofn; char File[ MAX_PATH ] = ""; char Filter[ MAX_PATH ] = ""; if ( ISCHAR( 1 ) ) lstrcpy( File, hb_parc( 1 ) ); if ( ISCHAR( 2 ) ) lstrcpy( Filter, hb_parc( 2 ) ) ; ofn.lStructSize = 76; ofn.hwndOwner = GetActiveWindow(); // ofn.lpstrFilter = "Excel(*.xls,*.csv)\0*.xls;*.csv\0All(*.*)\0*.*\0"; ofn.lpstrFilter = Filter; ofn.lpstrCustomFilter = 0; ofn.nFilterIndex = 1; ofn.lpstrFile = File; ofn.nMaxFile = MAX_PATH; ofn.lpstrFileTitle = 0; //ofn.lpstrInitialDir = 0; ofn.lpstrTitle = "Save As"; ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_SHAREAWARE | OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT ; ofn.lpstrDefExt = 0; if ( GetSaveFileName( &ofn ) ) hb_retclen( File, lstrlen( File ) ); else hb_retc( "" ); } HB_FUNC( COPENFILE ) { OPENFILENAME ofn; char File[ MAX_PATH ] = ""; char Filter[ MAX_PATH ] = ""; if ( ISCHAR( 1 ) ) lstrcpy( File, hb_parc( 1 ) ); if ( ISCHAR( 2 ) ) lstrcpy( Filter, hb_parc( 2 ) ) ; ofn.lStructSize = 76; ofn.hwndOwner = GetActiveWindow(); // ofn.lpstrFilter = "Excel(*.xls,*.csv)\0*.xls;*.csv\0All(*.*)\0*.*\0"; ofn.lpstrFilter = Filter; ofn.lpstrCustomFilter = 0; ofn.nFilterIndex = 1; ofn.lpstrFile = File; ofn.nMaxFile = MAX_PATH; ofn.lpstrFileTitle = 0; //ofn.lpstrInitialDir = 0; ofn.lpstrTitle = "Open"; ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_SHAREAWARE | OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT ; ofn.lpstrDefExt = 0; if ( GetOpenFileName( &ofn ) ) hb_retclen( File, lstrlen( File ) ); else hb_retc( "" ); } #pragma ENDDUMP I shall be grateful for any explanation of this behavior. :-) Regards. Sudip
_______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour