Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Использование кода CB в D   Найти похожие ветки 

 
bns   (2005-06-08 14:37) [0]

Есть программа с текстами для CBuilder. Мне нужно вызывать методы этой программы из кода на D5/D7. Можно ли это сделать, не используя DLL?

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

Спасибо.


 
TUser ©   (2005-06-08 14:40) [1]

Не уверен, но кажется можно с использованием bpl.


 
Digitman ©   (2005-06-08 14:40) [2]


> методы этой программы


у программы нет понятия "метод"


> Можно ли это сделать, не используя DLL?


можно, если речь идет не о расширении.


 
bns   (2005-06-08 14:44) [3]

ну, виноват: не методы, а процедуры и функции.

Что имеется в виду под словом "расширение"?


 
Digitman ©   (2005-06-08 14:46) [4]


> Что имеется в виду под словом "расширение"?


расширение имени файла


> процедуры и функции


сделай эту программу внешним олей/СОМ-сервером


 
bns   (2005-06-08 15:09) [5]

Не хочется в COM залезать. На уровне линковки obj-файла, можно так сделать?


 
Erik1 ©   (2005-06-08 16:38) [6]

По идее можно.


 
Digitman ©   (2005-06-08 16:47) [7]


>  На уровне линковки obj-файла, можно так сделать?


какие нафих obj-файлы, коль речь идет о готовом приложении, сверстанном в чем угодно (в дан.случае - по горизонту в чем), в т.ч. и в СВВ ?


 
bns   (2005-06-08 17:13) [8]

я, наверное, нечетко изложил проблему. Речь идет вот о чем: есть программа на С для CBuilder-a, есть ее текст. Хочется не портируя этот текст на pascal, не пользуясь dll, вызывать процедуры и функции программы на С из другой программы, написанной на паскале.

Если это можно сделать, пожалуйста, несколько инструкций, как это можно сделать.


 
PVOzerski ©   (2005-06-08 17:18) [9]

Если программа использует минимум библиотек (и хорошо, если она написана действительно на C, а не на C++, и, соответственно, не использует классов), можно попытаться с минимумом модификаций скомпилировать ее в obj-файл и статически прилинковать. Правда, куски сишной RTL в том или ином виде потянутся вслед почти наверняка, и придется либо разбирать на модули сишную RTL, либо привязываться к какой-нибудь crtdll.dll, либо переписывать эти функции с теми же именами на паскале (ну, или на си :) )...


 
bns   (2005-06-09 17:25) [10]

А можно спросить про тонкости процесса? В Delphi прописал search path к obj файлу и файлу .h проекта. После компиляции нашлись ошибки:

[Error] Unsatisfied forward or external declaration: "__Return_unwind"
[Error] Unsatisfied forward or external declaration: "@__InitExceptBlockLDTC"
[Error] Unsatisfied forward or external declaration: "_strlen"
[Error] Unsatisfied forward or external declaration: "NetGetDCName"
[Error] Unsatisfied forward or external declaration: "_printf"
[Error] Unsatisfied forward or external declaration: "_sprintf"
[Error] Unsatisfied forward or external declaration: "_strcat"

Что я не так делал?

Спасибо.


 
pasha_golub ©   (2005-06-09 17:45) [11]

bns   (09.06.05 17:25) [10]
О чем и говорилось ранее... Надо тянуть за собой Сишную RTL.

Я тоже это пытался сделать. Такого гемора в жизни своей не видывал.

Короче, мой вам совет юзайте dll.


 
PVOzerski ©   (2005-06-09 17:45) [12]

Да всё ты так делал... Разве что путь к хедеру для паскального компилятора не нужен. Просто прогноз оправдался: потянулись системные функции.


 
PVOzerski ©   (2005-06-09 17:52) [13]

NetGetDCName - это из NETAPI32.DLL,
_strlen, _printf, _sprintf, _strcat есть, например, в crtdll.dll,
а вот __Return_unwind и @__InitExceptBlockLDTC - штуки, видимо, специфические для Borland... Либо реализовывать самому, либо выдирать из RTL. Хорошо, если хотя бы какая-то дока есть по этим функциям.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1118126471
Леонид
2005-06-07 10:41
2005.06.29
Как запретить ввод значений в combobox


14-1117778235
Layner
2005-06-03 09:57
2005.06.29
Документы нового Office: Microsoft откроет форматы


1-1118217103
TAN_K
2005-06-08 11:51
2005.06.29
PageControl и PageControl


14-1117038559
Piter
2005-05-25 20:29
2005.06.29
Авария в Москве - повод подвинуть Чубайса


3-1116494268
Victor!
2005-05-19 13:17
2005.06.29
ADOQuery медленно работает по сети?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский