Войти

Показать полную графическую версию : libcfgmgr32.a с CM_Get_DevNode_Registry_Property()


RedScorpio
07-10-2014, 10:09
Здравствуйте

Разыскивается libcfgmgr32.a с CM_Get_DevNode_Registry_Property() для MinGW32 (для 64-битной реализации найден в cygwin).
Или помогите создать: утилита pexports успешно создает def-файл, но после работы dlltool (dlltool.exe --def cfgmgr32.def --dllname cfgmgr32.dll --output-lib cfgmgr32.a) создается просто пустой файл.

RedScorpio
08-10-2014, 12:13
Пока никаких откликов нет, приложу свое временное решение (чтоб не запоминать)

#include <setupapi.h>
#include <ddk\cfgmgr32.h>

#if !defined(CM_Get_DevNode_Registry_Property)
#define LOAD_CM_GET_DRP
typedef CONFIGRET (WINAPI *pCM_Get_DevNode_Registry_Property)(
/*IN*/ DEVINST dnDevInst,
/*IN*/ ULONG ulProperty,
/*OUT*/ PULONG pulRegDataType,
/*OUT*/ PVOID buffer,
/*IN OUT*/ PULONG pulLength,
/*IN*/ ULONG ulFlags
);
#endif

#ifdef LOAD_CM_GET_DRP
// объявления
pCM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_Property;
HINSTANCE hExtDll;
#endif

#ifdef LOAD_CM_GET_DRP
// загружаем библиотеку;
if((hExtDll = LoadLibrary("cfgmgr32.dll")) == NULL) {
// обработка ошибки
return NULL;
}
//если загрузка прошла успешно (пока не работаем в unicode);
CM_Get_DevNode_Registry_Property = (pCM_Get_DevNode_Registry_Property)GetProcAddress(hExtDll,
"CM_Get_DevNode_Registry_PropertyA");
#endif

// вызов
cr = CM_Get_DevNode_Registry_Property(...):

#ifdef LOAD_CM_GET_DRP
// освобождаем библиотеку;
FreeLibrary(hExtDll);
#endif




© OSzone.net 2001-2012