![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть программа на С++ (я сам в С++ не очень разбираюсь)
фрагмент кода: Код:
int CIoTestDlg::init() { char buf[256]; int i, card_id, index, n=0; CString valid_string; ***** index = m_pMMC->index[ i ]; card_id = m_pMMC->inwN(index, RID) & 0x0f; valid_string = m_pMMC->_ValidString(); sprintf(buf,"%2d: Valid string('%s'), Board id(%d)", i, (LPCTSTR)valid_string, card_id); m_ctrlCardList.AddString(buf); В оригинале возвращает "PMC-4B-PCI" описание библиотечной функции: Код:
char* ValidString( void ); Кусок кода: Код:
var s:integer; i:THandle; sa,sa1:word; OpCardN:TOpenCardN; ValStr:TValidString; ClCardN:TCloseCardN; InW:TInwN; card:PChar; cn:string; begin BoardIndex:=0; if libHandle=0 then libhandle:=loadLibrary('MC8041P.DLL'); if libhandle<>0 then begin memo1.Lines.Add('MC8041P.DLL - загружена'); @OpCardN := GetProcAddress(libhandle, 'OpenCard_N'); @ValStr := GetProcAddress(libhandle, 'ValidString'); @ClCardN:= GetProcAddress(libhandle, 'CloseCard_N'); @InW:= GetProcAddress(libhandle, 'InW_N'); if Assigned(OpCardN) and Assigned(ValStr)and Assigned(ClCardN)and Assigned(ClCardN)and Assigned(InW)then begin //основная работа memo1.Lines.Add('Процедуры из библиотеки - загружены'); memo1.Lines.Add('Поиск доступных карт'); for s := 0 to 16 do begin i:=OpCardN(s,@isr_Sub,0,0,0); if i<>0 then begin BoardIndex:=s; memo1.Lines.Add('Доступна карта -ID:'+inttostr(s)); card:=ValStr(); cn:=strpas(card); sa1:=$10; sa:=InW(BoardIndex,sa1); sa:= sa and $f; Скорей всего что-то не так делаю, а что не могу понять |