загружаем длл и передаем в функцию HWND
От: ranetka  
Дата: 08.10.05 13:37
Оценка:
есть dll, которая поставляется вместе с неким девайсом, есть в ней функция, описанная как

function InitVideo(MainForm,
                   VideoControl,
                   FingerControl:HWND;
                   msg:pChar;
                   var buflen:integer;
                   DeviceList:pChar):integer;stdcall;
//MainForm - handle основного окна, где идет работа с видео,
//VideoControl - handle окна, где может отображаться видеосигнал
//FingerControl - handle окна, где будет отображаться склеенный палец
//msg - имя девайса для старта, буфер для сообщения об ошибке
//(если возвращается <>0), отвести не менее 1000 байт
//buflen:integer;DeviceList:pChar - возвращается список доступных девайсов если pch[0]=0


есть необходимость загрузить эту функцию в приложении на С#. Для этого делаю так:

[DllImport("GetVideo.dll", EntryPoint="InitVideo", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)]
public static extern unsafe int InitVideo(void* MainForm, void* VideoControl, void* FingerControl, String msg, int buflen, String devlist);

...

char[] msgA = new char[1024];
char[] devlistA = new char[1024];
String msg = new String(msgA);
String devlist = "   ";                                              ";
int err, buflen = 1024, width = 320, height = 240;
if (InitVideo(this.Handle.ToPointer(),pbImage.Handle.ToPointer(),pbImage.Handle.ToPointer(),msg,buflen,devlist)==0)
{//no errror
...                
}

при вызове ругается, что
An unhandled exception of type 'System.NullReferenceException' occurred in fpdb_manager.exe
Additional information: Object reference not set to an instance of an object.

перепробовала все варианты, пришедшие в голову по поводу того, что в функцию передавать. Результат один и тот же. Где ошибка? Что смотреть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.