реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Перевести софт с Visual на Builder
paskal
сообщение Aug 3 2011, 17:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Приобрели на работе компьютерный девайс - преобразователь интерфейса для канала Манчестер. Как всегда срочно нужно написать под него софт для работы с нашей аппаратурой. Но возникла трудность. Все исходники написаны на вижуал си. И библиотеки работающие с драйверами - тоже. Я с вижуал не знаком, тем более что на работе его нет и поставить админ не даст. Есть только C++ Builder. Короче надо как то переделывать эти библиотеки на билдер или дельфи. Разъясните насколько эта процедура реальна?
Обращение на фирму ничего не дало, сказали программист в отпуске.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 3 2011, 19:01
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(paskal @ Aug 3 2011, 21:47) *
Приобрели на работе компьютерный девайс - преобразователь интерфейса для канала Манчестер. Как всегда срочно нужно написать под него софт для работы с нашей аппаратурой. Но возникла трудность. Все исходники написаны на вижуал си. И библиотеки работающие с драйверами - тоже. Я с вижуал не знаком, тем более что на работе его нет и поставить админ не даст. Есть только C++ Builder. Короче надо как то переделывать эти библиотеки на билдер или дельфи. Разъясните насколько эта процедура реальна?

Переделывать чужой программный код с одного языка на другой - гиблое дело, хотя при сильной настойчивости выполнимое. Поэтому переписывать с C на Delphi не советую, тем более, когда нет ясности с тем, как работают все эти ваши библиотечные функции и драйверы. А вот переложить с Visual C на Builder много проще, т.к. язык здесь все-таки один тот же. Проблемы могут возникнуть, если у вас исходники не на C, а на С++. Вот тогда может оказаться, что код, опирающийся на стандартные для Visual C классы, не захочет интегрироваться в Builder из-за того, что классы у них разные.

В общем случае что-то утверждать заглаза нельзя - код надо смотреть. А я даже не знаю, какая у вас версия Builder...
Go to the top of the page
 
+Quote Post
paskal
сообщение Aug 4 2011, 16:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(Xenia @ Aug 3 2011, 23:01) *
Проблемы могут возникнуть, если у вас исходники не на C, а на С++. Вот тогда может оказаться, что код, опирающийся на стандартные для Visual C классы, не захочет интегрироваться в Builder из-за того, что классы у них разные.

В общем случае что-то утверждать заглаза нельзя - код надо смотреть. А я даже не знаю, какая у вас версия Builder...

Классы там вроде не используются. Исходники оформлены как набор обычных сишных функций. При попытке компиляции выдает ошибку "недостижимый код" (unreachable code). При этом указывает на строку где вызов стандартного API DeviceIOControl. Компилирую 6-м билдером.

Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?
Go to the top of the page
 
+Quote Post
Mik174
сообщение Aug 4 2011, 20:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139



Цитата(paskal @ Aug 3 2011, 20:47) *
Я с вижуал не знаком, тем более что на работе его нет и поставить админ не даст.


Не даст поставить админ пиратскую программу?
Есть бесплатная версия Visual C++, которую можно совершенно не опасаясь установить.
Скачивается прямо с сайта Микрософт.
Отличие от версии которая продается за деньги - в том что на одном компьютере можно установить только транслятор одного языка из комплекта Visual Studio и еще некоторыми ограничениями, которые практически не мешают применению пакета.
Go to the top of the page
 
+Quote Post
shreck
сообщение Aug 5 2011, 01:53
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Цитата(paskal @ Aug 4 2011, 23:23) *
Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?

Компилятор С++ от борланда сущий отстой (даже последней версии). Без рихтовки кода, думаю, не получится. Но с другой стороны, если код - ближе к С, чем к С++, то правки будут небольшие.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 5 2011, 07:24
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (paskal @ Aug 4 2011, 18:23) *
Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?

Дело в том, что Борлондячий компилятор кривой по жизни sad.gif. Что-то сделали из 'С' компилятора типа "свое". На первый взгляд оно конечно похоже, но нюансов много, можно с легкостью наступить на "особое мнение" Борланда при портировании. Если не что-то типа всяких окошек с рюшечками ( а это с Борланда вообще не портируется без полного преписывания), то можно попробовать обычный бесплатный Watcom. Я в большинстве случаев только им и пользуюсь. Единственно, что это таки компилятор, а не IDE c рбшечками и визардвми (хотя формально какая-то IDE там в комплекте есть). Да и GCC абсолютно доступен.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 5 2011, 09:48
Сообщение #7


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(paskal @ Aug 4 2011, 20:23) *
При попытке компиляции выдает ошибку "недостижимый код" (unreachable code). При этом указывает на строку где вызов стандартного API DeviceIOControl. Компилирую 6-м билдером.

Чтобы вызывались API-шные функции, нужно всего-лишь подключить хидер <windows.h>.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 5 2011, 10:38
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Xenia @ Aug 5 2011, 11:48) *
Чтобы вызывались API-шные функции, нужно всего-лишь подключить хидер <windows.h>.

Вообще-то Unreachable code в сколь-нибудь общепринятом смысле означает, что компилятор обнаружил кусок кода который никогда не будет исполняться, не потому, что его нет, а по причине прямо противоположной - он есть, но к нему никто ни при каких условиях не обращается (по крайней мере компилятор не знает, откуда его вызывают). Давно уже не пачкал руки борлондячей продукцией, но не думаю, что даже они используют сообщение Unreachable code в смысле, который приписываете ему Вы - Function has no prototype sm.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Flexz
сообщение Aug 5 2011, 10:58
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



А давно Unreacheable code ошибкой стал? или вы компилируете в режиме "Считать ворнинги ошибками"?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Aug 5 2011, 11:10
Сообщение #10


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (paskal @ Aug 4 2011, 02:47) *
И библиотеки работающие с драйверами - тоже.

Библиотеки? Вообще, ИМХО, библиотека не должна привязываться сильно к какому-либо компилятору. Это же не GUI.
А *.dll там нет? Ее неважно с чем использовать.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016