Page 1 of 1
Компиляция плагинов в VisualStudio 2005
Posted: Sat Feb 10, 2007 8:41 am
by Kartun
Для успешной компиляции Akelpad/plugins ytj,[jдимо иметь VisualC Toolkit 2003, который можно
взять тут
Posted: Sat Feb 10, 2007 5:48 pm
by Instructor
Мною используются для компиляции:
1. Microsoft Visual C++ Toolkit 2003 + Microsoft Platform SDK
2. Microsoft Visual C++ 6.0 (для IDE).
Но не думаю, что возникнут особые проблемы с другими C++ компиляторами, т.к. плагины и программа написаны на С.
Posted: Thu Oct 14, 2010 4:44 pm
by Fr0sT
Microsoft Visual C++ Toolkit 2003
Нашёл вот
тут. После этого надо указать путь (по дефолту C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib) в Сервис - Параметры - Каталоги VC++ - Файлы библиотек.
Теперь вопрос: как отлаживаться? Студия ругается, что "нет загруженных символов для этого документа" и отказывается останавливаться на брейкпоинтах. Pdb файл лежит рядом с плагином, даже собрал сам Акель с Pdb файлом - не помогло.
Posted: Thu Oct 14, 2010 6:08 pm
by FeyFre
Всё компилируется и работает в VS2005/2008 без особых загвоздок. Рекомендую только обратить внимание на некоторые функции из stdlib.h и stdio.h (если используете) например на sprintf - разные версии CRT от Microsoft, так что в итоге может и упасть. На MSVS 2003 (IDE) тоже проблем нету.
Instructor, Вам конечно виднее, но по моему часть плагинов и редактор написаны на C++(ну не строится оно с ключом /TC как не крути).
Fr0sT
Чем компилировали и в какой студии отлаживаем? Проблемы с точками останова у меня решались перегрузкой системы(редко перегрузкой студии). Зато NTSD очень даже хорошо останавливался на любых точках останова.
Posted: Fri Oct 15, 2010 6:27 am
by Fr0sT
FeyFre, поставил то, что было под руками - VS2008 express. Подозреваю, проблема именно в том, что студия ищет некий отладочный файл и не находит. *тут следует экспрессивная сентенция на тему сравнения удобства VS и RAD studio, которая вырезана цензурой*
Я в этой среде дуб дубом, поэтому и прошу о руке помощи. Кстати, когда я пытался поковырять плаг к миранде, то же самое было. И это была, кажется, 2005-я студия.
Posted: Fri Oct 15, 2010 6:48 am
by Instructor
FeyFre
Instructor, Вам конечно виднее, но по моему часть плагинов и редактор написаны на C++(ну не строится оно с ключом /TC как не крути).
Это был вызов

Файлы в версии 4.5.0 будут с расширением С. Наличие расширения CPP обуславливалось тем, что компилятор отказывался компилировать COM вызовы на GCC, но спустя 3 года (предыдущее сообщение) решил поискать снова и нашел решение

Posted: Fri Oct 15, 2010 8:04 am
by Fr0sT
О! Незнамо как, но оно зашевелилось!!! Причем ничего нового не делал, просто удалил проекты и собрал их полностью заново. И глюк с дублирующимся манифестом при сборке Акеля исчез, и в dll-ку входит и останавливается. Красота!
Posted: Fri Oct 15, 2010 9:30 am
by FeyFre
Instructor
Дело не в расширении, что Вы. Простым переименованием точно не обойдетесь.
Fr0sT, ключи линкеру и компилятору по поводу отладочной информации все задали? Я, кстати, особо не уверен насколько могуча експресс студия в плане отладки на ходу.
Миранда... на 6.0 и на 9.0 студиях вроде-бы работало(однажды пришлось допилить брошенный три года назад плагин, который не мерился с некоторыми условностями 0.9).
Posted: Fri Oct 15, 2010 11:05 am
by Fr0sT
FeyFre
в прошлую попытку дошёл до того, что повключал вообще ВСЁ, что только можно и что связано с отладкой - в итоге схлопотал 4 загадочных ошибки линкера. В этот, удачный, раз - только перенастроил пути, чтобы плаг компилился в AkelFiles\Plugs, и всё заработало. В миранде я как раз застопорился на стадии "отладочных символов".
Кстати, Инструктор, просто ради интереса: зачем реализовывать собственную функцию перевода регистра, если есть WinAPI функция CharUpperBuff?

Posted: Fri Oct 15, 2010 1:11 pm
by FeyFre
Кстати, Инструктор, просто ради интереса: зачем реализовывать собственную функцию перевода регистра, если есть WinAPI функция CharUpperBuff?
1. Где?(Вроде бы Инструктор пользуется такими везде где только видел).
2. CharUpperBuff и ей подобные имеют проблемы с некоторыми локалями(так в MSDN написано), потому наверно Инструктор решил рискнуть собственной реализацией.
В этот, удачный, раз - только перенастроил пути, чтобы плаг компилился в AkelFiles\Plugs, и всё заработало. В миранде я как раз застопорился на стадии "отладочных символов".
По опыту знаю: если есть исходники, то лучше всего отлаживаться компилируя самостоятельно, а не аттачится к сделанному кем-то бинарнику надеясь что сделанные кем-то другим отладочные символы подойдут.(Плагины к Акелу дебажу на собственноручно построенном Акеле).
Posted: Fri Oct 15, 2010 2:20 pm
by Fr0sT
FeyFre
Где?(Вроде бы Инструктор пользуется такими везде где только видел).
Не знаю, я увидел две "портянки" в AkelDLL, вот и спросил)
если есть исходники, то лучше всего отлаживаться компилируя самостоятельно, а не аттачится к сделанному кем-то бинарнику надеясь что сделанные кем-то другим отладочные символы подойдут
Просто я впервые с такими трудностями сталкиваюсь, в Дельфях прекрасно аттачился к совершенно чужим экзешникам без какой бы то ни было отладочной инфы и горя не знал.
Posted: Fri Oct 15, 2010 4:07 pm
by FeyFre
Не знаю, я увидел две "портянки" в AkelDLL, вот и спросил)
Странно. AkelDLL в исходниками 4.4.9 с этой точки зрения "чист".
Просто я впервые с такими трудностями сталкиваюсь, в Дельфях прекрасно аттачился к совершенно чужим экзешникам без какой бы то ни было отладочной инфы и горя не знал.
Чур на Вас! Не переношу на дух Delphi/C Builder.

При определенной сноровке(при условии что матчасть прочли) любой отладчик атачится к бинарнику любого компилятора.(Сейчас вполне успешно можно с помощью MSVS отлаживать бинарники созданные Flat Assembler-ом с подтягиванием иходников)