Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Стандартные библиотеки на С++ подключать к MC++


Автор: Pavvvelll 28.2.2008, 10:46
Есть проблемка, необходимо подключить драйвер к проекту. Драйвер подключается из dll и в visual c его подключение выглядит так:

Это из мануала платы:

Код

#include <windows.h>
#include <objbase.h>
#include "..\include\ioctl.h"
#include "..\include\ifc_ldev.h"
#include "..\include\create.h"

CREATEFUNCPTR CreateInstance;

ULONG CallCreateInstance(char* name)
{
   HINSTANCE hComponent = ::LoadLibrary(name);
   if(hComponent==NULL)
   {
      return 0;
   }

   CreateInstance = (CREATEFUNCPTR)::GetProcAddress(hComponent,"CreateInstance");
   if(CreateInstance==NULL)
   {
      return 0;
   }
   return 1;
}
//Где-то в Вашем проекте (в компьютере одна плата L-783): 

   ULONG slot = 0;

   trace("Get IUnknown pointer");
   CallCreateInstance("lcomp.dll");
   LUnknown* pIUnknown = CreateInstance(slot);
   if(pIUnknown == NULL) { trace("CallCreateInstance failed"); return 1; }
   
   trace("Get IDaqLDevice interface");
   IDaqLDevice* pI;
   HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);
   if(!SUCCEEDED(hr)) { trace("Get IDaqLDevice failed"); return 1; }
   trace("IDaqLDevice get success");
   trace("Free IUnknown");
   pIUnknown->Release();

   pI->OpenLDevice(); // начало работы с платой
   pI->LoadBios("l783");
   ...

   pI->CloseLDevice(); // завершение работы
   pI->Release();


Они это называют квази COM интерфейс.=)
Если я компилирую это в проекте WinAPI проблем нет, но когда я пытаюсь сделать проект WindowsForms на С++возникают сложности
вроде 
HINSTANCE hComponent = ::LoadLibrary(name);
работает в hComponent что то есть, но уже 
CreateInstance = (CREATEFUNCPTR)::GetProcAddress(hComponent,"CreateInstance");
возвращает в CreateInstance NULL;
CreateInstance - это указатель на функцию, определенный в h файле.

pIUnknown структура содержащая указатели на функции.

Подскажите пожалуйста, есть ли возможность оперировать подобными библиотеками в MC++, в С# как я понимаю это практически не реализуемо? И в чем может быть проблемма?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)