Unresolved external symbol

У меня небольашя проблемкакак можно исправить одну багу, компилятор выдаёт следующие баги:unresolved external symbol __imp__KeSetEvent@12 referenced in fuction _DrvBitBlt@44unresolved external symbol __imp__KeClearEvent@4 referenced in fuction _DrvBitBlt@44unresolved external symbol __imp__IoCreateNotificationEvent@8 referenced in fuction _DrvBitBlt@44unresolved external symbol __imp__RtlInitUnicodeString@8 referenced in fuction _DrvBitBlt@44---как побороть сию проблему?компилирую из DDK
BOOL DrvBitBlt(   IN SURFOBJ *psoDst,   IN SURFOBJ *psoSrc,   IN SURFOBJ *psoMask,   IN CLIPOBJ *pco,   IN XLATEOBJ *pxlo,   IN RECTL *prclDst,   IN POINTL *pptlSrc,   IN POINTL *pptlMask,   IN BRUSHOBJ *pbo,   IN POINTL *pptlBrush,   IN ROP4 rop4   ){   INT cnt1 = 0, cnt2 = 0;    BOOL bMore;    CLIPRECTS cr;    RECTL* prclClip;    ULONG* lenstr;    int crects = 0;    ULONG temp_var = 0;    ULONG* var_1;    P_RECTL arr_rectl,arr_rectl_1;    /////////////   ULONG file;   ULONG file_3;   char* pointer;   ULONG file_1;   ULONG size;   ULONG *size1;   char* pointer_1;   char* pointer_2;   UNICODE_STRING EventName;   PHANDLE EventHandle = NULL;   PKEVENT pEventObject;   /////////////            CLIPOBJ_cEnumStart(pco, FALSE, CT_RECTANGLES, CD_ANY, 0);            arr_rectl = (P_RECTL)EngAllocMem (FL_ZERO_MEMORY,sizeof(t_mytype_rectl),ALLOC_TAG);            arr_rectl_1 = arr_rectl;        do        {                bMore = CLIPOBJ_bEnum(pco, sizeof(cr), (ULONG*)&cr);            for (prclClip = &cr.arcl[0]; cr.c != 0; cr.c--, prclClip++)            {                arr_rectl -> rectl = *prclClip;                arr_rectl -> next  = EngAllocMem (FL_ZERO_MEMORY,sizeof(t_mytype_rectl),ALLOC_TAG);                arr_rectl = (P_RECTL)arr_rectl -> next;                crects++;            }        } while (bMore);                    EngFreeMem((P_RECTL)arr_rectl -> next);//    arr_rectl->next = (PVOID)NULL;   //учесть строку length_stroki+"DrvBitBlt"   //учесть число количества прямоугольников   pointer = (char *)EngMapFile(L"\\??\\c:\\111.txt",4,&file);   size1 = (ULONG *)pointer;   size = *size1;   pointer_1 = (char *)EngMapFile(L"\\??\\c:\\112.txt",size+sizeof(RECTL)*crects+4+strlen("DrvBitBlt"),&file_1);   //memcpy(pointer_1 + size,crects,sizeof(ULONG));   var_1 = (ULONG *)pointer_1 + size;   *var_1 = crects;   arr_rectl=arr_rectl_1;   while (crects != 0)   {   crects--;   memcpy((ULONG *)pointer_1 + size,&(arr_rectl->rectl),sizeof(RECTL));   arr_rectl = arr_rectl -> next;   }   crects = *var_1;   lenstr  = (ULONG *)pointer_1 + size+sizeof(RECTL)*crects;   *lenstr = strlen("DrvBitBlt");   memcpy(pointer_1 + size+sizeof(RECTL)*crects+sizeof(strlen("DrvBitBlt")),"DrvBitBlt",strlen("DrvBitBlt"));   size +=sizeof(RECTL)*crects+strlen("DrvBitBlt")+sizeof(strlen("DrvBitBlt"));   *size1 = size;   EngUnmapFile(file);   EngUnmapFile(file_1);  //    DISPDBG((1,    //        "Mirror Driver DrvBitBlt (Mask=%08x, rop=%08x:\n",      //      psoMask,         //  rop4));  RtlInitUnicodeString(&EventName, L"\\BaseNameObjects\\MyMirrorEvent"); pEventObject = IoCreateNotificationEvent(&EventName, EventHandle); KeClearEvent(pEventObject); KeSetEvent(pEventObject,0,FALSE); KeClearEvent(pEventObject);   if (psoSrc)   {       if (psoSrc->dhsurf)       {          MIRRSURF *mirrsurf = (MIRRSURF *)psoSrc->dhsurf;          if (mirrsurf->bIsScreen)           {             DISPDBG((1, "From Mirror Screen "));          }          else          {             DISPDBG((1, "From Mirror DFB "));          }          cnt1 ++;       }       else       {          DISPDBG((1, "From DIB "));       }   }   if (psoDst)   {       if (psoDst->dhsurf)       {          MIRRSURF *mirrsurf = (MIRRSURF *)psoDst->dhsurf;          if (mirrsurf->bIsScreen)           {             DISPDBG((1, "to MirrorScreen "));          }          else          {             DISPDBG((1, "to Mirror DFB "));          }          cnt2 ++;       }       else       {          DISPDBG((1, "to DIB "));       }   }   if (cnt1 && cnt2)   {      DISPDBG((1, " [Send Request Over Wire]\n"));   }   else if (cnt1)   {      DISPDBG((1, " [Read Cached Bits, Or Pull Bits]\n"));   }   else if (cnt2)    {      DISPDBG((1, " [Push Bits/Compress]\n"));   }   else   {      DISPDBG((1, " [What Are We Doing Here?]\n"));   }   return FALSE;}
14 ответов

newinfo2005, Библиотеку какую-то не подключил.Что за компилятор?


ну компилятор из DDK 3790.1830  для разработки драйверов.Так я не пойму какая именно библиотека не подключена? либы какие-то? как их подключать?


Библиотеку какую-то не подключил
Точнее не слинковал. Скорее всего нужно подключить какой-то *.lib, какой именно - Вам виднее, это Ваш проект.Обычно это делается так
#pragma comment (lib, "some_library.lib")


newinfo2005, чего-то странный код какой-то даже заголовочных файлов никаких нет. Под чем пишите? Чем пишите? Откуда код?


http://msdn.microsoft.com/en-us/library/ms801639.aspx
Headers: Declared in wdm.h. Include wdm.h, ntddk.h, or ntifs.h.
но чето про либы ничего не нахожу...не люблю мсдн :(


ntoskrnl.lib


не люблю мсдн :(
Оригинально. Это как храмому не любить костыли. НЕ пользуемся из принципа или потому что английского не знаем?


но чето про либы ничего не нахожу...не люблю мсдн :(
НЕ пользуемся из принципа или потому что английского не знаем?
Скорей всего из за неудобства навигации и пользования. Мне тоже именно это не нравится. Постоянно напрягает.. 


mes, это как он может быть неудобным?Нужна функция, бдынс, ввёл в индексах - тут же вариантов тьма: выбирай какой надо.Что за проблемы  


MSDN  forever, лучшая справка всех времен и народов но бывает реально бесит


НЕ пользуемся из принципа или потому что английского не знаем?
наоборот пользуемсяи без инглиша сейчас никуда
Нужна функция, бдынс, ввёл в индексах - тут же вариантов тьма: выбирай какой надо.Что за проблемы  
да вот сабж тебе примерне написано, от какой либы зависита если написано, то черт-те гделегче уж в инете нарыть


Alek86, там всегда указаны хидеры как минимум.


Rickert, сам по себе код большой. там много подключаемых файлов.это я расшрил один из графических перехватчиков в миррор драйвере который идет в минимальном варианте от майкрософта в комлекте ДДК.в принципе мне мсдн нравиться очень, пусть и на английском, но так сойдет


я подключил либу предложенную Alexeis,  но также пордолжает ругаться компилятор, я в растерянности