Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2

C++ Builder и PAS файлы


Rouse_ ©   (04.12.16 09:43

Ребят, у кого был опыт подключения PAS файлов к сишному проекту?
Сейчас занимаюсь с парнем на тему отладчика, и лениво столько кода портировать на си, решил подрубить свой старый модулек
http://rouse.drkb.ru/winapi.php#dbg
А он зараза выдает ошибки плана:
[ilink32 Error] Fatal: Unable to open file 'SYSTEM.SYSUTILS.OBJ'

А как без SYSUTILS-то? У меняж там исключения кидаются.
Где что подкрутить чтоб скомпилировалось?


Inovet ©   (04.12.16 10:15[1]

Вроде особых нюансов не помню. Просто добавляешь в Си++ Билдер проект паскалевский файл, среда при сборке вызовет компилятор Делфи, он сгенерирует obj и заголовок *.h. Заголовок надо будет #include куда надо. Иногда бывают небольшие проблемы с заголовком, но это можно устранить в паскалевском иходнике.

Ну а линкеру вообще без разницы как бы чьи obj собирать. Может у тебя в настройках проекта путь какой не прописан с системным библиотекам?


Rouse_ ©   (04.12.16 10:21[2]

Ну я вчера с нуля триальную версию си билдера поставил т.е. ничего не настраивал, создаю новый проект и подключаю свой FWDebugerCore.pas - все больше ничего не трогаю - ну и билд.
Никаких заголовочных H файлов он не создал.


Rouse_ ©   (04.12.16 10:22[3]

Подключал так-же как и в дельфи, т.е. Project->Add to Project


Rouse_ ©   (04.12.16 10:25[4]

Можешь у себя проверить? там только (как в моем случае) если у тебя билдер последний, то параметр Dummy нужно изменить с DWORD на NativeUInt.
Скомпилируется или нет?


Inovet ©   (04.12.16 10:26[5]

> [1] Inovet ©   (04.12.16 10:15)
> *.h

*.hpp
Вернее

> [2] Rouse_ ©   (04.12.16 10:21)
> FWDebugerCore.pas

Щас попробую твой


Inovet ©   (04.12.16 10:33[6]

Удалено модератором


Inovet ©   (04.12.16 10:34[7]

Чёт я лишнего закопипипастил.


Rouse_ ©   (04.12.16 10:35[8]

Так, ну у тебя хоть до этого дошло...
Дай плз в виде строки свои настройки из Tools->Library для 32 бит
Похоже там у меня что-то не верно


Rouse_ ©   (04.12.16 10:36[9]

Library path короче


Inovet ©   (04.12.16 10:40[10]

Давай я тебе весь проект скину XE4
https://cloud.mail.ru/public/48ej/ESApPPXUv


Inovet ©   (04.12.16 10:42[11]

Потри сообщение, чтобы не отсечивало
[6] Inovet ©   (04.12.16 10:33)


Rouse_ ©   (04.12.16 10:45[12]

Угу грохнул. Щас проверю


Inovet ©   (04.12.16 10:49[13]

Ещё, как вариант. Можно откомпилировать заранее в DCU с генерацией *.hpp, и уже просто заголовок добавлять, ну и чтобы *.dcu был доступен в путях поиска.


Rouse_ ©   (04.12.16 11:08[14]

Так, погоди - скомпилялось :)
Сам не понял что сделал :)


Rouse_ ©   (04.12.16 11:10[15]

Да, вроде зафурычило, осталось понять как с ним в сишном коде работать - конструктор обработчики, но это я уже щас в справку погружусь.
Спасибо, выручил :)


Inovet ©   (04.12.16 11:16[16]

> [15] Rouse_ ©   (04.12.16 11:10)

Это хорошо.

А почему ошибки были? Какие-то особенности между версиями Delphi? Я уж вникать не стал.


Rouse_ ©   (04.12.16 11:18[17]

Я не понял - взял твой проект, он ругнулся на декларацию GetMappedFileNameA - но она мне не особо сейчас нужна - закоментил кусок кода и все заработало


Rouse_ ©   (04.12.16 11:20[18]

Лучше скажи мне - бо я дольше искать буду.
Как в билдере новый класс создать и обработчики ему назначить?
Я дольше читать буду :)
Оть так не фурычит

TFWDebugerCore: Debuger;
       //Debuger = TFWDebugerCore.Create;
Debuger = new TFWDebugerCore;

как правильно?


Inovet ©   (04.12.16 11:27[19]

> [18] Rouse_ ©   (04.12.16 11:20)
> как правильно?

TFWDebugerCore *dc = new TFWDebugerCore(параметры коструктора, или одного из них, если их несколько);
try {
 ...
 dc->AttachToProcess(параметры)
 ...
}
__finally {
 delete dc // здесь будет вызван деструктор.
}


Страницы: 1 2 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо