Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод! 
:(
    Опции темы
Frikazoid
Дата 13.1.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Здрасти!
Могёте вот это перевести в дельфёвый вид культурно на? Спасибо!
int __declspec(dllexport) __stdcall ExtPing(int nCommPort, BOOL bIsIrDA = FALSE);
long __declspec(dllexport) __stdcall ExtGetFreeMemory(int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtGetSerialNumber(LPSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtGetTime(LPSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtUpdateTime(int nCommPort, BOOL bIsIrDA = FALSE);

int __declspec(dllexport) __stdcall ExtGetCurrentState(LPSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
long __declspec(dllexport) __stdcall ExtGetDataCount(int nDoc, int nCommPort, BOOL bIsIrDA = FALSE);
long __declspec(dllexport) __stdcall ExtGetRecordsCount(int nBase, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtClearDoc(int nDoc, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtClearDatabase(int nBase, int nCommPort, BOOL bIsIrDA = FALSE);
int __declspec(dllexport) __stdcall ExtReadData(int nDoc, LPSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
int __declspec(dllexport) __stdcall ExtReadRecord(int nBase, LPSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtPutRecord(int nBase, LPCSTR szData, int nCommPort, BOOL bIsIrDA = FALSE);
BOOL __declspec(dllexport) __stdcall ExtFinish(int nCommPort, BOOL bIsIrDA = FALSE);

Санькс...



--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 13.1.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Вот некоторые. На остальные времени нету:
Код
export
 function ExtPing(nCommPort : integer; bIsIrDA : Boolean = False): integer; stdcall;
 function ExtGetFreeMemory(nCommPort : integer; bIsIrDA : Boolean = False): longint; stdcall;
 function ExtGetSerialNumber(szData : PAnsiChar; nCommPort : integer;  bIsIrDA : Boolean = False): Boolean; stdcall;
 function ExtGetTime(szData : PAnsiChar; nCommPort : integer;  bIsIrDA : Boolean = False): Boolean; stdcall;
 function ExtUpdateTime(nCommPort : integer;  bIsIrDA : Boolean = False): Boolean; stdcall;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Frikazoid
Дата 13.1.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



А как вот из этой ExtGetSerialNumber вункции получить значение szData?
просто меня выкидывает с ерррором когда я пользовал эту функцию так
function ExtGetSerialNumber(szData : PChar; nCommPort : integer; bIsIrDA : Boolean = False): Boolean; stdcall;
или
function ExtGetSerialNumber(szData :LPSTR; nCommPort : integer; bIsIrDA : Boolean = False): Boolean; stdcall;


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Frikazoid
Дата 14.1.2004, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Люди! Все равно выкидывает с ошибкой! В szData должно возращаться значение - строка! Как это правильно организовать! Ерор состоит в том, что он не может записать значение по такому-то адрессу!
Попожите плз!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 14.1.2004, 06:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Дак откуда ты эти функции берешь то? Это ведь экспортируемые ДЛЛ-кой функции?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Unregistered
Дата 14.1.2004, 09:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Frikazoid поищи ответ на своем сайте ;-D
  Вверх
p0s0l
Дата 14.1.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



По ходу дела тут надо выделять память под строку:
Код
var
 str1 : PAnsiChar;
begin
 GetMem (str1, 1024);
 ExtGetSerialNumber (str1, ....);
 ...
 FreeMem (str1, 1024);
end;




--------------------
С уважением, г-н Посол.
PM   Вверх
Frikazoid
Дата 14.1.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Ну да! Из длл беру! длл написана на VC! ненавижу этот девайс! извиняюсь за выражение, но я с ним е...сь вот уже месяц или 2!
С функциями ExtPing, ExtGetFreeMemory не возникает никаких проблем! вызываются нормально, а вот те функции где есть szData : PAnsiChar; программа вываливается с интернал еррором! что за фигня?


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 14.1.2004, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Правильно говорит p0s0l. Попробуй выделить память, послче чего только передать указатель.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Гость_Frikazoid
Дата 14.1.2004, 17:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Правильно говорит p0s0l. Попробуй выделить память, послче чего только передать указатель.

Оказывается это глючный длл!
Ладно! разберусь!
  Вверх
Гость_Frikazoid
Дата 17.1.2004, 11:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пипалы!
Никак не получается! ДЛЛ возращает указатель а вот как дальше быть не знаю! sad.gif
Но самый прикол в том, что если в мемо копировать содержимое таким образом
Код
for i:=1 to 100 do memo1.text:=memo1.text+p[i];

то всё показывает, а если так
Код

var s:string;
begin
s:=p;
memo1.text:=s;
end;

то не катит! что я делаю не так?

ЗЫ я везде выделяю память как надо!
Поможите! Я уже отчаялся мля! Впервые вижу такой непослушный девайс!
  Вверх
<Spawn>
Дата 17.1.2004, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Что есть p? Указатель на какой тип данных?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Гость_Frikazoid
Дата 17.1.2004, 15:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











(p) я пробовал объявлять поразному, смысл один PChar, PAnsiChar
  Вверх
p0s0l
Дата 18.1.2004, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
CODE 
for i:=1 to 100 do memo1.text:=memo1.text+p[i];

то всё показывает

И что, все 100 символов - это все какой-то сер. номер ?
А там до самого текста никаких левых символов не вылазит ?
Если не вылазят, то может там нуля нигде нет в конце строки ?
Попробуй так:
Цитата
PByte(cadinal(p)+100)^ := 0;
s:=p;
memo1.text:=s;

А если вылазят левые символы, то нужно смотреть, что это за символы...



--------------------
С уважением, г-н Посол.
PM   Вверх
Гость_Frikazoid
Дата 19.1.2004, 16:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нет! там не 100 символов! просто размер строки не фиксирован! А ентот размер не как не могу узнать!
И 2-е. Почему не работает один из вышеперечисленных методов, а другой работает?
И вот этот метод:
Код
for i:=1 to 100 do memo1.lines.add(p[i]);

тоже не работает! ничего не понимаю!
  Вверх
Гость_Frikazoid
Дата 19.1.2004, 19:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не помоло.... И к тому же, чаще всего вылазят 3 левых символа имхо указатель! Но как от туда вытащить строку....
  Вверх
<Spawn>
Дата 19.1.2004, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Frikazoid пришлика ДЛЛ, если она не является чем то секретным)) Попробую похимичить )


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Frikazoid
Дата 19.1.2004, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



http://forum.vingrad.ru/index.php?act=ST&f=2&t=15002

там я говорил про эту тему! sad.gif


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Frikazoid
Дата 20.1.2004, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2





--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Frikazoid
Дата 21.1.2004, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Люди! только не бросайте меня sad.gif


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Frikazoid
Дата 22.1.2004, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Ну что, никто не спасёт меня? sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 22.1.2004, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



А ты правильно их импортируешь?? А то в том твоем примере импорт функции не верен, т.к. Си "слегка" дополняет название функции )) Т.е. TDump показывает такие их названия:

Код
Section:             Exports
 Flags:             00000000
 Time Stamp:        3FBDE28F : Fri Nov 21 15:01:51 2003
 Major Version:     0000
 Minor Version:     0000

Exports from Cipher.dll
 40 exported name(s), 40 export addresse(s).  Ordinal base is 1.
 Sorted by Name:
   RVA      Ord. Hint Name
   -------- ---- ---- ----
   00001B80    1 0000 ??0CCipher@@QAE@XZ
   00001BA0    2 0001 ??1CCipher@@QAE@XZ
   00001000    3 0002 ??4CCipher@@QAEAAV0@ABV0@@Z
   00001E20    4 0003 ?CheckComm@CCipher@@QAEHXZ
   000030D0    5 0004 ?ClearDatabase@CCipher@@QAEHH@Z
   00002F60    6 0005 ?ClearDoc@CCipher@@QAEHH@Z
   00001E40    7 0006 ?CloseComm@CCipher@@QAEXXZ
   00001730    8 0007 ?ExtClearDatabase@@YGHHHH@Z
   00001680    9 0008 ?ExtClearDoc@@YGHHHH@Z
   00001AE0   10 0009 ?ExtFinish@@YGHHH@Z
   00001420   11 000A ?ExtGetCurrentState@@YGHPADHH@Z
   00001520   12 000B ?ExtGetDataCount@@YGJHHH@Z
   000010E0   13 000C ?ExtGetFreeMemory@@YGJHH@Z
   000015D0   14 000D ?ExtGetRecordsCount@@YGJHHH@Z
   00001180   15 000E ?ExtGetSerialNumber@@YGHPADHH@Z
   00001280   16 000F ?ExtGetTime@@YGHPADHH@Z
   00001030   17 0010 ?ExtPing@@YGHHH@Z
   00001A00   18 0011 ?ExtPutRecord@@YGHHPBDHH@Z
   000017E0   19 0012 ?ExtReadData@@YGHHPADHH@Z
   000018F0   20 0013 ?ExtReadRecord@@YGHHPADHH@Z
   00001380   21 0014 ?ExtUpdateTime@@YGHHH@Z
   00003FC0   22 0015 ?Finish@CCipher@@QAEHXZ
   00002AD0   23 0016 ?GetCurrentState@CCipher@@QAEHPAD@Z
   00002C20   24 0017 ?GetDataCount@CCipher@@QAEJH@Z
   00002110   25 0018 ?GetErrorDescription@CCipher@@QAEHHPAD@Z
   00002520   26 0019 ?GetFreeMemory@CCipher@@QAEJXZ
   00002100   27 001A ?GetLastError@CCipher@@QAEHXZ
   00002DC0   28 001B ?GetRecordsCount@CCipher@@QAEJH@Z
   00002650   29 001C ?GetSerialNumber@CCipher@@QAEHPAD@Z
   000027A0   30 001D ?GetTime@CCipher@@QAEHPAD@Z
   00001BE0   31 001E ?InitComm@CCipher@@IAEHXZ
   00001BB0   32 001F ?OpenComm@CCipher@@QAEHHH@Z
   00001E70   33 0020 ?OpenIrDA@CCipher@@IAEHXZ
   00002480   34 0021 ?Ping@CCipher@@QAEHXZ
   00003B20   35 0022 ?PutRecord@CCipher@@QAEHHPBD@Z
   00003240   36 0023 ?ReadData@CCipher@@QAEHHPAD@Z
   000036B0   37 0024 ?ReadRecord@CCipher@@QAEHHPAD@Z
   000040D0   38 0025 ?SendCommand@CCipher@@IAEHPBDPAD@Z
   00001FF0   39 0026 ?TestIrDA@CCipher@@IAEHK@Z
   00002920   40 0027 ?UpdateTime@CCipher@@QAEHXZ


Т.е. для того, чтобы, к примеру, импортировать ExtGetSerialNumber нужна написать следующее:

Код
function ExtGetSerialNumber(szData : PAnsiChar; nCommPort : integer;  bIsIrDA : Boolean = False): Boolean; stdcall; external 'Cipher.dll' name '?ExtGetSerialNumber@@YGHPADHH@Z';


П.С. Кстати, у меня ошибки при вызове функции не было.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Frikazoid
Дата 22.1.2004, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Ситуация в корне изменилась! Функции не выдают ошибок, но я не могу получить данные из szData!
Да, наверное глупо обращатся к людям у которых нет реального девайса на руках!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.