Перейти к содержанию
    

Перевести софт с Visual на Builder

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

Обращение на фирму ничего не дало, сказали программист в отпуске.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я с вижуал не знаком, тем более что на работе его нет и поставить админ не даст.

 

Не даст поставить админ пиратскую программу?

Есть бесплатная версия Visual C++, которую можно совершенно не опасаясь установить.

Скачивается прямо с сайта Микрософт.

Отличие от версии которая продается за деньги - в том что на одном компьютере можно установить только транслятор одного языка из комплекта Visual Studio и еще некоторыми ограничениями, которые практически не мешают применению пакета.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?

Компилятор С++ от борланда сущий отстой (даже последней версии). Без рихтовки кода, думаю, не получится. Но с другой стороны, если код - ближе к С, чем к С++, то правки будут небольшие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Чтобы вызывались API-шные функции, нужно всего-лишь подключить хидер <windows.h>.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы вызывались API-шные функции, нужно всего-лишь подключить хидер <windows.h>.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А давно Unreacheable code ошибкой стал? или вы компилируете в режиме "Считать ворнинги ошибками"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И библиотеки работающие с драйверами - тоже.

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

А *.dll там нет? Ее неважно с чем использовать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...