Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


CreateInstance ошибка создания слота

Вы не вошли.

 Поиск | Регистрация | Вход 

Дмитрий
29.03.2011 18:05:31
#1

Гость

CreateInstance ошибка создания слота

Доброго времени суток. Работаю с L780M C Rev. на Visual C++ 2008. Никак не могу сообразить что не нравится CreateInstance. Сопутствующие файлы в проект добавлены (create.cpp и lguids.cpp). Инклуды настроены, но такое ощущение что слот ни в какую не хочет определяться. PCI-Плата, одна, больше ничего не висит. LGraph не хотел её в упор видеть пока не запихнул lcomp.dll в windows/system (выдавал ошибку загрузки lcomp.dll). Но всё же подозрения на определяемость платы остались...Ось XP, в хелпе читал про ACPI, но в биосе нашел только один из указываемых пунктов. Пример lxx.osc выдаёт также ошибку - не находит устройства. Помогите пожалуйста разобраться в чём дело?

Дмитрий
29.03.2011 18:07:22
#2

Гость

Re: CreateInstance ошибка создания слота

Прилагаю также код:


#include <windows.h>

#include "..//include//ioctl.h"
#include "..//include//ifc_ldev.h"
#include "..//include//create.h"
#include "..//include//pcicmd.h"

#include <objbase.h>

// Загрузка библиотеки и инициализация интерфейса
long main()
{
ULONG slot = 0;
PLATA_DESCR_U2 pd;

if (CallCreateInstance("C:/Program Files/L-card/LIBRARY/BIN/lcomp.dll")==NULL)
{
    MessageBox(0, "Load Library failed", "Error", MB_OK);
    return 1;
}

LUnknown* pIUnknown = CreateInstance(slot);
if(pIUnknown == NULL)        
{            
    MessageBox(0, "CreateInstance failed", "Error", MB_OK);               
    return 1;        
}

IDaqLDevice* pI;
HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);
if(!SUCCEEDED(hr))
{
    MessageBox(0, "Get IDaqLDevice failed", "Error", MB_OK);
    return 1;
}

pIUnknown->Release();
// Начало работы с платой
if (pI->OpenLDevice() == INVALID_HANDLE_VALUE)
{
    MessageBox(0, "OpenLDevice failed", "Error", MB_OK);
    return 1;
}

if (pI->LoadBios("L780") == L_ERROR)
{
    MessageBox(0, "Bios failed", "Error", MB_OK);
    return 1;
}

pI->ReadPlataDescr(&pd);

// Завершение работы
pI->CloseLDevice();
// Закрытие интерфейса
pI->Release();

}

Дмитрий
29.03.2011 23:01:12
#3

Гость

Re: CreateInstance ошибка создания слота

Уффф....решение всех проблем как и подозревал оказалось в том, что плата не схватывалась....перелопатил биос, нашёл таки интуитивно опцию отключающую кажется IRQ-прерывание...только чтобы она ТАК называлась в жизни не подумал бы...всем спасибо, извиняюсь за моноложный оффтоп, чуть-чуть не докопал... smile

29.03.2011 23:13:50
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: CreateInstance ошибка создания слота

Если не сложно, что это за животворящая опция в BIOS//'е?

Дмитрий
29.03.2011 23:54:47
#5

Гость

Re: CreateInstance ошибка создания слота

BIOS
Advanced
Onboard Devices Configuration
Serial port Address -> вместо всяких "3F8/IRQ4" ставим Disabled и всё пашет

Два дня мне эта галочка кровь портила sad