WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Delphi
  экспортируемые функций DLL (С++ в Delphi)

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   экспортируемые функций DLL (С++ в Delphi)
Svetik22 опубликован 05-10-2001 18:42 MSK   Click Here to See the Profile for Svetik22   Click Here to Email Svetik22  
Уважаемые программисты!
У меня к Вам просьба, помогите разобраться с проблемой!
Есть DLL написанная в то ли C++ Builder, то ли в Borland C++ 5.02
В описании сказано, что совместима со средствами разработки приложений фирмы Borland.
У меня есть документация со списком экспортируемых функций из этой DLL.
Подключить я смогу эту библиотеку, но для меня проблема как можно
перевести (ведь нужно описать) эти функции в Delphi?
Извиняюсь за такой объем :(
Зараннее спасибо, Светлана.

Вот список экспортируемых функций DLL :
--------------------------------------------------------
Подключиться к устройству.
BOOL CPSO_ConnectToHW();
Возвращаемое значение - FALSE, если были ошибки при открытии порта.
--------------------------------------------------------
Установить параметры и подключиться к устройству.
BOOL CPSO_ConnectWithProp(LPCTSTR szPortName,
UINT HWType,
UINT ChCount,
UINT OutputChCount,
double dTiming,
UINT nSamplesToSkip = 0);
Возвращаемое значение FALSE, если были ошибки при открытии порта.
szPortName Имя порта как строковая переменная оканчивающаяся нулевым байтом (напр. “COM1”, “COM2”, и т.д.)
HWType Tип протокола устройства. Целое без знака. 0 – тип L. 1 – тип A.
ChCount Количество входных каналов.
OutputChCount Количество выходных каналов.
dTiming Интервал времени между соседними выборками, получаемыми из устройства.
nSamplesToSkip Количество выборок, опускаемых при программном прореживании.
--------------------------------------------------------
Отключиться от устройства.
void CPSO_DisconnectFromHW();
--------------------------------------------------------
Преобразовать время из внутреннего формата в строковый как абсолютное время.
void CPSO_FormatAbsTime(double TimeInSeconds,
LPTSTR sz);
TimeInSeconds Время в секундах, в формате как оно передается в пользовательские функции приема данных и алгоритма управления.
sz Адрес буфера пользователя, куда будет помещена строка в формате HH:MM:SS.FFFFF , где HH – часы, MM – минуты, SS – секунды, FFFFF – дробная часть секунд. Строка оканчивается нулевым байтом.
--------------------------------------------------------
Преобразовать время из внутреннего формата в строковый как относительное время.
void CPSO_FormatRelTime(double TimeInSeconds,
LPTSTR sz);
TimeInSeconds Время в секундах, в формате, как оно передается в пользовательские функции приема данных и алгоритма управления.
sz Адрес буфера пользователя, куда будет помещена строка в формате HH:MM:SS.FFFFF , где HH – часы, MM – минуты, SS – секунды, FFFFF – дробная часть секунд. Строка оканчивается нулевым байтом.
--------------------------------------------------------
Включить/отключить выдачу сообщений об ошибках на зкран (в виде MessageBox).
void CPSO_PopupErrorMessages(BOOL bDisplay);
bDisplay - если TRUE, то при возникновении ошибки обращения к порту показывать сообщения и возвращать значение FALSE из функций интерфейса. Если FALSE, то только сигнализировать возвращаемым значением переменной типа BOOL.
--------------------------------------------------------
Задать данные для вывода.
void CPSO_PutDataForWriting(signed short *WSampleBuffer);
WSampleBuffer Указатель на буфер, из которого будут скопированы данные для вывода. Хотя в данный момент число каналов на вывод ограничено 8-ю, воизбежание проблем совместимости с будущими версиями следует выделять буфер размером 64 шестнадцатиразрядных слов.
--------------------------------------------------------
Задать функцию алгоритма автоматического управления
void CPSO_SetUpACLoopProc(LPVOID pACLoopProc);
pACLoopProc Указатель на функцию пользователя, в которой выходное воздействие определяется как результат операции над входными данными.
Функция пользователя должна быть определена как:
BOOL ACLoopProc(double dInputTime,
unsigned short * InputCodeSample,
signed short * OutputCodeSample);
где:
Возвращаемое значение Следует устанавливать TRUE. Устанавливайте FALSE, если хотите сэкономить процессорное время, в случаях когда данные реально не изменились с момента последнего обращения.
dInputTime Время на момент приема текущей выборки.
InputCodeSample Адрес массива, из которого могут быть прочитаны последние принятые данные.
OutputCodeSample Адрес массива, в который необходимо поместить данные для вывода.
Примечание: Длина обоих массивов равна 64 шестнадцатиразрядных слов. Решение о том, с какими элементами следует работать, принимается иходя из заданного числа каналов. См. CPSO_SetHWProp и CPSO_ConnectWithProp . (Внимание!! Не следует хранить адреса этих массивов и ссылаться на них после завершения функции!)
--------------------------------------------------------
Установить параметры.
void CPSO_SetHWProp(LPCTSTR szPortName,
UINT HWType,
UINT ChCount,
UINT OutputChCount,
double dTiming,
UINT nSamplesToSkip = 0);
szPortName Имя порта как строковая переменная оканчивающаяся нулевым байтом (напр. “COM1”, “COM2”, и т.д.)
HWType Tип протокола устройства. Целое без знака. 0 – тип L. 1 – тип A.
ChCount Количество входных каналов.
OutputChCount Количество выходных каналов.
dTiming Интервал времени между соседними выборками, получаемыми из устройства.
nSamplesToSkip Количество выборок, опускаемых при программном прореживании.
--------------------------------------------------------
Задать функцию, принимающую данные.
void CPSO_SetUpReceiverProc(LPVOID pReceiverProc);
pReceiverProc Указатель на функцию пользователя, в которой принятые данные будут передаваться для последующей обработки.
Функция пользователя должна быть определена как:
BOOL ReceiverProc(double dInputTime, unsigned short * InputCodeSample);
где:
Возвращаемое значение Обычно следует возвращать TRUE. Устанавливайте FALSE, если пользовательская программа занята и не успевает обработать текущую выборку. Передача этой выборки будет повторена.
dInputTime Время на момент приема текущей выборки.
InputCodeSample Адрес массива, из которого пользователь может прочитать последние принятые данные. Длина массива равна 64 шестнадцатиразрядных слов. Однако действительны только первые его элементы, столько, чему равно количество входных каналов.
--------------------------------------------------------
Установить прореживание.
void CPSO_SetSkipping(UINT nSamplesToSkip);
nSamplesToSkip Количество выборок, опускаемых при программном прореживании. Если 0, принимается каждая выборка (максимально подробный режим сбора).
--------------------------------------------------------
Установить текущий момент вренени как начальный.
void CPSO_SetStartTimeToCurrent();
Примечание: Начальный момент времени это начало отсчета шкалы времени, относительно которого определяется момент прихода очередной выборки. Данные этой выборки и информация о времени ее прихода передаются в соответствующие пользовательские функции.
Dimka Maslov опубликован 08-10-2001 15:04 MSK     Click Here to See the Profile for Dimka Maslov  Click Here to Email Dimka Maslov     
BOOL CPSO_ConnectToHW(); =
function CPSO_ConnectToHW: LongBool;

BOOL CPSO_ConnectWithProp(LPCTSTR szPortName,
UINT HWType,
UINT ChCount,
UINT OutputChCount,
double dTiming,
UINT nSamplesToSkip = 0); =
function CPSO_ConnectWithProp(szPortName: PChar; HWType, ChCount, OutputChCount: UINT;
dTiming: Double; nSamplesToSkip: UINT);

void CPSO_DisconnectFromHW(); =
procedure CPSO_DisconnectFromHW;

void CPSO_FormatAbsTime(double TimeInSeconds,
LPTSTR sz); =
procedure CPSO_FormatAbsTime(TimeInSeconds: Double; sz: PChar);

void CPSO_PutDataForWriting(signed short *WSampleBuffer); =
procedure CPSO_PutDataForWriting(var wSampleBuffer: ShortInt);

void CPSO_SetUpACLoopProc(LPVOID pACLoopProc); =
procedure CPSO_SetUpACLoopProc(pACLoopProc: Pointer);

И дальше в том же духе.

WildBit опубликован 08-10-2001 15:28 MSK     Click Here to See the Profile for WildBit  Click Here to Email WildBit     
А что б без геморроя вот тебе линк
на прогу, которая транслирует заголовки H
в PAS
http://www.drbob42.com/tools/index.htm

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.