Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > C/C++ > C/C++
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.09.2012, 23:12
gosha_msh gosha_msh вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 2
Репутация: 10
По умолчанию Помогите перевести из С++ в Delphi

Есть маленькая программка работы с библиотекой 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: Правила форума нужно читать, а не просто тыкать галочку "согласен". Код должен быть оформлен тегами, в соответствии с правилами форума!

Заранее спасибо.

Последний раз редактировалось Bargest, 19.09.2012 в 23:23.
Ответить с цитированием
  #2  
Старый 20.09.2012, 00:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Импортируй нужную библиотеку типов из 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  
Старый 20.09.2012, 10:14
gosha_msh gosha_msh вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 2
Репутация: 10
По умолчанию

lmikle огромное спасибо, попробую.
P.S. Вот ссылка на DLL http://cas.ru/upload/iblock/5fa/DLL-...%20RS-232z.zip
может что нибудь добавите

Bargest: Дико извиняюсь.

Последний раз редактировалось gosha_msh, 20.09.2012 в 10:25.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter