Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   libcfgmgr32.a с CM_Get_DevNode_Registry_Property() (http://forum.oszone.net/showthread.php?t=289057)

RedScorpio 07-10-2014 10:09 2412060

libcfgmgr32.a с CM_Get_DevNode_Registry_Property()
 
Здравствуйте

Разыскивается 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 2412570

Пока никаких откликов нет, приложу свое временное решение (чтоб не запоминать)

Код:

#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



Время: 02:45.

Время: 02:45.
© OSzone.net 2001-