![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть маленькая программка работы с библиотекой dll, это для весового терминала, написана на С++, я ничего не понимаю, может кто поможет перевести в Delphi ?? ПЛИЗЗЗ ОООчень надо.
Вот текст описания dll и пример на С++: ------------------------------------------------------ Перед работой необходимо зарегистрировать библиотеку с помощью утилиты regsvr32. Библиотека содержит три свойства: NumberOfCom – номер com порта.(целое, 32бита) Weight – содержит вес.(строка) Stab – стабилен ли вес. (целое, 32бита) 0 – стабилен, 1 – не стабилен, 2 – перегруз. Библиотека содержит три функции: Open – необходимо вызвать для начала работы с библиотекой. Close – необходимо вызвать по завершению работы с библиотекой. Update – обновляет свойства Weight и Stab. Алгоритм работы: 1. Установить NumberOfCom 2. Open 3. Update 4. Чтение переменных Weight и Stab 5. Если требуется узнать ещё данные, то вернутся к шагу 3. 6. Close Пример программы работы с библиотекой. Пример написан на языке C++: Код:
// Test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#import "C:\D\mega_proj\COM_DLL\Ci2001A\Ci2001A\Ci2001A\Ci2001A\Debug\Ci2001A.dll"
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(0);
try
{
Ci2001ALib::IIndicPtr p("Ci2001A.Indic");
p->NumberOfCom = 1;
p->Open();
// Читаем данные
p->Update();
cout << p->Weight;
cout << p->Stab;
// Ждем пять сек.
Sleep(5000);
// Читаем данные
p->Update();
cout << p->Weight;
cout << p->Stab;
p->Close();
}
catch( _com_error &e )
{
MessageBox( 0, e.Description(), L"F", MB_OK );
MessageBox( 0, e.ErrorMessage(), L"F", MB_OK );
}
CoUninitialize();
return 0;
}Заранее спасибо. Последний раз редактировалось Bargest, 19.09.2012 в 23:23. |
|
#2
|
|||
|
|||
|
Импортируй нужную библиотеку типов из DLL - там все будет.
Соответсвенно, у тебя будут просто вызовы соотв. компонента. Примерно так (точнее не могу сказать из-за отсутсвия самой библиотеки): Код:
program test;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, Ci2001A_TLB; // <-файл будет после импорта либы
var
C : IIndic;
begin
CoInitialize(0);
C := CoIndic.Create;
Try
С.NumberOfCom := 1;
C.Open;
C.Update;
WriteLn(C.Weight);
WriteLn(C.Stab);
Sleep(5000);
C.Update;
WriteLn(C.Weight);
WriteLn(C.Stab);
C.Close();
Finally
C := Nil; // Не обязательно
CoUninitialize();
End;
end. |
|
#3
|
|||
|
|||
|
lmikle огромное спасибо, попробую.
P.S. Вот ссылка на DLL http://cas.ru/upload/iblock/5fa/DLL-...%20RS-232z.zip может что нибудь добавите Bargest: Дико извиняюсь. Последний раз редактировалось gosha_msh, 20.09.2012 в 10:25. |