|
|
  |
Перевести софт с Visual на Builder |
|
|
|
Aug 3 2011, 19:01
|

Гуру
     
Группа: Модератор 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...
|
|
|
|
|
Aug 4 2011, 16:23
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769

|
Цитата(Xenia @ Aug 3 2011, 23:01)  Проблемы могут возникнуть, если у вас исходники не на C, а на С++. Вот тогда может оказаться, что код, опирающийся на стандартные для Visual C классы, не захочет интегрироваться в Builder из-за того, что классы у них разные.
В общем случае что-то утверждать заглаза нельзя - код надо смотреть. А я даже не знаю, какая у вас версия Builder... Классы там вроде не используются. Исходники оформлены как набор обычных сишных функций. При попытке компиляции выдает ошибку "недостижимый код" (unreachable code). При этом указывает на строку где вызов стандартного API DeviceIOControl. Компилирую 6-м билдером. Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП?
|
|
|
|
|
Aug 4 2011, 20:26
|
Местный
  
Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139

|
Цитата(paskal @ Aug 3 2011, 20:47)  Я с вижуал не знаком, тем более что на работе его нет и поставить админ не даст. Не даст поставить админ пиратскую программу? Есть бесплатная версия Visual C++, которую можно совершенно не опасаясь установить. Скачивается прямо с сайта Микрософт. Отличие от версии которая продается за деньги - в том что на одном компьютере можно установить только транслятор одного языка из комплекта Visual Studio и еще некоторыми ограничениями, которые практически не мешают применению пакета.
|
|
|
|
|
Aug 5 2011, 07:24
|

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

|
QUOTE (paskal @ Aug 4 2011, 18:23)  Вообще интересно если программа отлажена под вижуал си, должна ли она компилироваться билдером, если не используется особых наворотов вроде ООП? Дело в том, что Борлондячий компилятор кривой по жизни  . Что-то сделали из 'С' компилятора типа "свое". На первый взгляд оно конечно похоже, но нюансов много, можно с легкостью наступить на "особое мнение" Борланда при портировании. Если не что-то типа всяких окошек с рюшечками ( а это с Борланда вообще не портируется без полного преписывания), то можно попробовать обычный бесплатный Watcom. Я в большинстве случаев только им и пользуюсь. Единственно, что это таки компилятор, а не IDE c рбшечками и визардвми (хотя формально какая-то IDE там в комплекте есть). Да и GCC абсолютно доступен.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 5 2011, 10:38
|

Гуру
     
Группа: Свой
Сообщений: 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  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|