Главная страница
    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.055 c
1-1117628075
webpauk
2005-06-01 16:14
2005.06.29
Расширение возможностей TmenuItem


1-1118149549
Lexander
2005-06-07 17:05
2005.06.29
Поток и текстовая переменная


14-1117204178
Сатир
2005-05-27 18:29
2005.06.29
У кого есть фотка команды Microsoft 78-го года ?


14-1117603804
BiN
2005-06-01 09:30
2005.06.29
С Днем Защиты Детей, что ли


14-1117983887
asdqwer
2005-06-05 19:04
2005.06.29
Quicktime+IE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский