![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
Всем добрый вечер! Мне нужно перевести код написанный на Delphi в С++ Builder, если есть у кого-то какие-то идеи подскажите пжл.
Код:
|
![]() |
![]() |
![]() |
#2 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
Часть уже перевел
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,368
|
![]()
#define OpenDLL OpenDLLPlus
extern "C" int __stdcall OpenDLLPlus(const char* OpName, const char* Psw, const char* DevName, const char* Baudrate, int FlagOem); Потом подключаем azimuth.lib Мне не совсем понятно почему OpenDLL вызывается напрямую а StartSeans через LoadLibrary и GetProcAddress. |
![]() |
![]() |
![]() |
#4 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
не я так придумал, а по другому не хочет работать
![]() Попробовал эту функцию в деле Код:
[ILINK32 Error] Error: Unresolved external 'OpenDLLPlus' referenced from C:\...\DEBUG\UNIT1.OBJ можно и StartSeans вызвать напрямую Function StartSeans: Integer; stdcall; far; external 'azimuth.dll' name 'StartSeans'; А как можно вызвать функцию OpenDLL через LoadLibrary может так проще будет Последний раз редактировалось Stilet; 09.09.2014 в 18:04. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
![]()
alexey6522
Чтобы работало, надо сделать для DLL файл LIB с помощью implib и подключить его к проекту. Тогда линкер ругаться не будет. А проще, наверное, описать OpenDll как указатель и взять его GetProcAddress по аналогии с StartSeans. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
А как описать OpenDll как указатель и взять его GetProcAddress по аналогии с StartSeans?
![]() |
![]() |
![]() |
![]() |
#7 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
implib может проигнорить часть ф-ций из либы и их не будет видно в приложении, по этому проще?
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
Неужели никто не знает как переделать эту функцию
Код:
Пробовал таким вот образом, не получилось Код:
Код:
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 27.09.2009
Сообщений: 8
|
![]()
инициализацию я сделал, устройство подключается нормально.
Код:
Код:
в оригинале эта функция на Delphi выглядит таким образом и работает нормально. Код:
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,368
|
![]()
Насколько я понимаю, GetFldStr возвращает указатель, который переписывает тот указатель, который вы выделили, соответственно потом освобождаете не ту память.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Трансляция куска кода с си на делфи | Pavel_Filatov | Общие вопросы Delphi | 5 | 22.07.2014 20:05 |
Занимаюсь переводом кода с Си на Delphi. Вроде перевел, но осталась парочка нюансов | munthrekosh | Общие вопросы Delphi | 7 | 25.12.2013 09:34 |
[Delphi] Сшить 3 куска кода (WinApi) | SartAlfard | Помощь студентам | 0 | 17.10.2011 19:11 |
Разбор куска кода. | Alexcomeback | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 05.04.2011 18:14 |
Помогите пожалуйста с переводом Delphi на C++ | Jupiter | Помощь студентам | 0 | 07.07.2009 23:33 |