https://bugs.documentfoundation.org/show_bug.cgi?id=92478
Julien Nabet <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] | |, [email protected] --- Comment #14 from Julien Nabet <[email protected]> --- About the fact it works on Win32 and not on Win64, I noticed this: 63 #if defined(_WIN32) 64 #define TWAIN_LIBNAME "TWAIN_32.DLL" 65 #define TWAIN_FUNCNAME "DSM_Entry" 66 #endif (see http://opengrok.libreoffice.org/xref/core/extensions/source/scanner/scanwin.cxx#63) so for WIN64, TWAIN_LIBNAME is not defined at all or at minimum empty. TWAIN_LIBNAME is used in ImpTwain::ImplOpenSourceManager 252 if( pMod->load( OUString( TWAIN_LIBNAME ) ) ) 253 { 254 nCurState = 2; 255 256 pDSM = (DSMENTRYPROC) pMod->getSymbol(OUString(TWAIN_FUNCNAME)); (see http://opengrok.libreoffice.org/xref/core/extensions/source/scanner/scanwin.cxx#246) but since we'll load nothing, pDSM will stay unchanged from the way it has been created by constructor: 152 ImpTwain::ImpTwain( ScannerManager& rMgr, const Link<unsigned long,void>& rNotifyLink ) : 153 mxMgr( uno::Reference< scanner::XScannerManager >( static_cast< OWeakObject* >( &rMgr ), uno::UNO_QUERY) ), 154 mrMgr( rMgr ), 155 aNotifyLink( rNotifyLink ), 156 pDSM( NULL ), ie NULL. Finally, we arrive in ImpTwain::ImplHandleMsg with this instruction: nRet = PFUNC( &aAppIdent, &aSrcIdent, DG_CONTROL, DAT_EVENT, MSG_PROCESSEVENT, &aEvt ); and since PFUNC correspond to (*pDSM) => Crash! (see http://opengrok.libreoffice.org/xref/core/extensions/source/scanner/scanwin.cxx#PFUNC) So should we remove "if defined(_WIN32)" and consider the 2 defines are ok? Or is there some TWAIN_64.DLL? Michael: any idea who may have some experience with scanner/Twain? -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
