visuel c ++ - Indlæser Standard Printer mislykkes kun i MFC MDI-applikationen i vindue 7 32 bit, 64 bit arbejder fint

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har udviklet en MFC-baseret MDI-applikation ved hjælp af VC 2008 . Denne applikation løber glat i næsten hele operativsystemet.


Men i tilfælde af Win 7 32 Bit og hvis den er indstillet til en anden printer end XPS, fejler programmet ikke at starte og hænger og vises ikke. Men processen vil stadig være i task manager.


På diagnosen fandt jeg, at applikationen løbende forsøgte at indlæse Printerdrivere og ikke engang nået min applikations hovedvindue opstart og indlæsning af ressourcer.


Indlæsningssekvensen på hænge er som følger.


GetProcAddress(0x6FB90000 [c:windowssystem32WINSPOOL.DRV], "GetPrinterW") called from "c:windowssystem32spooldriversw32x863ESF3MFW.DLL" at address 0x03096EEA and returned 0x6FB9BAC8.
GetProcAddress(0x6FB90000 [c:windowssystem32WINSPOOL.DRV], "GetPrinterW") called from "c:windowssystem32spooldriversw32x863ESF3MFW.DLL" at address 0x03096EEA and returned 0x6FB9BAC8.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3maddprinter.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MADDPRINTER.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3maddprinter.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3maddprinter.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MADDPRINTER.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3maddprinter.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MBASE.DLL" as a data file into memory at address 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mbase.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x046D0002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mdevicesettings.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MDEVICESETTINGS.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mdevicesettings.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mdevicesettings.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MDEVICESETTINGS.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mdevicesettings.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3meffect.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MEFFECT.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3meffect.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3meffect.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MEFFECT.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3meffect.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mhsp.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MHSP.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mhsp.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mhsp.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MHSP.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mhsp.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mimagequality.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MIMAGEQUALITY.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mimagequality.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mimagequality.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MIMAGEQUALITY.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mimagequality.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3monetouch.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MONETOUCH.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3monetouch.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3monetouch.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MONETOUCH.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3monetouch.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mpagehandling.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MPAGEHANDLING.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mpagehandling.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mpagehandling.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MPAGEHANDLING.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mpagehandling.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mtandemprint.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291919.
Mapped "c:windowssystem32spooldriversw32x863ESF3MTANDEMPRINT.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mtandemprint.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mtandemprint.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) called from "c:windowssystem32VERSION.DLL" at address 0x75291A45.
Mapped "c:windowssystem32spooldriversw32x863ESF3MTANDEMPRINT.DLL" as a data file into memory at address 0x02860002.
LoadLibraryExW("C:Windowssystem32spoolDRIVERSW32X863eSf3mtandemprint.dll", 0x00000000, LOAD\_LIBRARY\_AS\_DATAFILE | 0x00000020) returned 0x02860002.
GetProcAddress(0x6FB90000 [c:windowssystem32WINSPOOL.DRV], "OpenPrinterW") called from "c:windowssystem32spooldriversw32x863ESF3MFW.DLL" at address 0x0309750C and returned 0x6FB968E8.


Ting jeg har prøvet efter, som ikke lykkedes at rejse op.



  1. Indstil kompatibilitetsfunktionen til min Apllication til 'Windows XP'

  2. Deaktiveret UAC



Mangler jeg noget? Hjælp venligst.


EDIT 1: Beklager, det er ikke VC6, det er VC 2008.

Bedste reference