-
Ребят, у кого был опыт подключения PAS файлов к сишному проекту?
Сейчас занимаюсь с парнем на тему отладчика, и лениво столько кода портировать на си, решил подрубить свой старый модулек
http://rouse.drkb.ru/winapi.php#dbgА он зараза выдает ошибки плана:
[ilink32 Error] Fatal: Unable to open file 'SYSTEM.SYSUTILS.OBJ'
А как без SYSUTILS-то? У меняж там исключения кидаются.
Где что подкрутить чтоб скомпилировалось?
-
Вроде особых нюансов не помню. Просто добавляешь в Си++ Билдер проект паскалевский файл, среда при сборке вызовет компилятор Делфи, он сгенерирует obj и заголовок *.h. Заголовок надо будет #include куда надо. Иногда бывают небольшие проблемы с заголовком, но это можно устранить в паскалевском иходнике.
Ну а линкеру вообще без разницы как бы чьи obj собирать. Может у тебя в настройках проекта путь какой не прописан с системным библиотекам?
-
Ну я вчера с нуля триальную версию си билдера поставил т.е. ничего не настраивал, создаю новый проект и подключаю свой FWDebugerCore.pas - все больше ничего не трогаю - ну и билд.
Никаких заголовочных H файлов он не создал.
-
Подключал так-же как и в дельфи, т.е. Project->Add to Project
-
Можешь у себя проверить? там только (как в моем случае) если у тебя билдер последний, то параметр Dummy нужно изменить с DWORD на NativeUInt.
Скомпилируется или нет?
-
> [1] Inovet © (04.12.16 10:15)
> *.h
*.hpp
Вернее
> [2] Rouse_ © (04.12.16 10:21)
> FWDebugerCore.pas
Щас попробую твой
-
Удалено модератором
-
Чёт я лишнего закопипипастил.
-
Так, ну у тебя хоть до этого дошло...
Дай плз в виде строки свои настройки из Tools->Library для 32 бит
Похоже там у меня что-то не верно
-
Library path короче
-
-
Потри сообщение, чтобы не отсечивало
[6] Inovet © (04.12.16 10:33)
-
Угу грохнул. Щас проверю
-
Ещё, как вариант. Можно откомпилировать заранее в DCU с генерацией *.hpp, и уже просто заголовок добавлять, ну и чтобы *.dcu был доступен в путях поиска.
-
Так, погоди - скомпилялось :)
Сам не понял что сделал :)
-
Да, вроде зафурычило, осталось понять как с ним в сишном коде работать - конструктор обработчики, но это я уже щас в справку погружусь.
Спасибо, выручил :)
-
> [15] Rouse_ © (04.12.16 11:10)
Это хорошо.
А почему ошибки были? Какие-то особенности между версиями Delphi? Я уж вникать не стал.
-
Я не понял - взял твой проект, он ругнулся на декларацию GetMappedFileNameA - но она мне не особо сейчас нужна - закоментил кусок кода и все заработало
-
Лучше скажи мне - бо я дольше искать буду.
Как в билдере новый класс создать и обработчики ему назначить?
Я дольше читать буду :)
Оть так не фурычит
TFWDebugerCore: Debuger;
//Debuger = TFWDebugerCore.Create;
Debuger = new TFWDebugerCore;
как правильно?
-
> [18] Rouse_ © (04.12.16 11:20)
> как правильно?
TFWDebugerCore *dc = new TFWDebugerCore(параметры коструктора, или одного из них, если их несколько);
try {
...
dc->AttachToProcess(параметры)
...
}
__finally {
delete dc // здесь будет вызван деструктор.
}