spoolss.lib aus DDK **** gelöst ****



  • Hallo Leute,

    ich ahbe das DDK Sample Localmon mit dem DDK getestet und es funktioniert. Jetzt möchte ich das ganze mit dem VS2010 kompilieren. Es müßte ja möglich sein, da es nur eine user mode dll ist.

    Ich habe einfach ein Win32 Dll Projekt erstellt und zusätzlich eine x64 Platform hinzugefügt.

    Die Funktion RevertToPrinterSelf aus derr Spoolss.lib aus dem DDK kann er nicht linken. Und das nur in der 32 bit variante in der 64 Bit Variante funktioniert es Problemlos

    32 Bit: WinDDK\7600.16385.1\lib\wxp\i386
    64 Bit: WinDDK\7600.16385.1\lib\wlh\amd64

    Der Fehler ist:

    util.obj : error LNK2019: unresolved external symbol _ImpersonatePrinterClient referenced in function _SetTransmissionRetryTimeoutInRegistry
    1>winspool.obj : error LNK2001: unresolved external symbol _ImpersonatePrinterClient
    1>util.obj : error LNK2019: unresolved external symbol _RevertToPrinterSelf referenced in function _SetTransmissionRetryTimeoutInRegistry
    1>winspool.obj : error LNK2001: unresolved external symbol _RevertToPrinterSelf

    vielleicht hat ja jemand einen Tip.

    MfG



  • wenn ich die lib mit dem hex Editor öffne ist die Funktion so drin:

    _ImpersonatePrinterClient@4

    bei der 64 Bit lib stimmt der Funktionsname er ist aber ohne unterstrich vorn:

    ImpersonatePrinterClient

    vielleicht hat das ja damit zu tun?

    MfG



  • Offiziell unterstützt VS2010 kein DDK!
    Es gibt aber Tricks um es zu integrieren...



  • Ich möchte ja einen user mode treiber schreiben.

    Dazu möchte ich ja nur eine lib aus dem DDK benutzen. Das heißt ich habe mir die Lib in mein Projektverzeichnis kopiert. Jetzt müßte ich doch die Lib benutzen können?

    Von welchen Tricks sprichst du?

    Ich nehm auch VS 2005 oder VS 2008 wenn ich es damit kompilieren kann.

    MfG



  • also ich habe zum test mal noch eine andere lib benutzt:

    comctl32.lib

    Bei der gibt es keine Probleme in beiden Varianten.

    Wo könnte ich nach dem Fehler suchen?

    MfG



  • Hallo

    hat vielleicht noch jemand eine Idee in welche Richtung ich suchen könnte um das Problem zu lösen.

    Oder hat einer noch eine spoolss.lib aus einem alten WDK.

    MfG



  • Hallo Leute,

    also das Problem liegt daran das die funktionen einen __stdcall erwarten:

    jetzt habe ich zwei Möglichkeiten:

    1. Ich ändere in dem DDK header winspl.h den prototype nach

    BOOL WINAPI ImpersonatePrinterClient(__in HANDLE hToken);
    

    oder

    2. Ich ändere die callconvention des Projektes in den Projekteinstellungen.

    Was machst sinn?

    MfG



  • also ich habe mich jetzt entschieden das WINAPI vor die 2 funktionen zu schreiben

    MfG


Anmelden zum Antworten