Компиляция плагинов в VisualStudio 2005

Discuss and announce AkelPad plugins
Post Reply
  • Author
  • Message
Offline
Posts: 1
Joined: Fri Feb 09, 2007 10:59 am

Компиляция плагинов в VisualStudio 2005

Post by Kartun »

Для успешной компиляции Akelpad/plugins ytj,[jдимо иметь VisualC Toolkit 2003, который можно взять тут

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Мною используются для компиляции:
1. Microsoft Visual C++ Toolkit 2003 + Microsoft Platform SDK
2. Microsoft Visual C++ 6.0 (для IDE).

Но не думаю, что возникнут особые проблемы с другими C++ компиляторами, т.к. плагины и программа написаны на С.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Microsoft Visual C++ Toolkit 2003

Нашёл вот тут. После этого надо указать путь (по дефолту C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib) в Сервис - Параметры - Каталоги VC++ - Файлы библиотек.

Теперь вопрос: как отлаживаться? Студия ругается, что "нет загруженных символов для этого документа" и отказывается останавливаться на брейкпоинтах. Pdb файл лежит рядом с плагином, даже собрал сам Акель с Pdb файлом - не помогло.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Всё компилируется и работает в VS2005/2008 без особых загвоздок. Рекомендую только обратить внимание на некоторые функции из stdlib.h и stdio.h (если используете) например на sprintf - разные версии CRT от Microsoft, так что в итоге может и упасть. На MSVS 2003 (IDE) тоже проблем нету.
Instructor, Вам конечно виднее, но по моему часть плагинов и редактор написаны на C++(ну не строится оно с ключом /TC как не крути).

Fr0sT
Чем компилировали и в какой студии отлаживаем? Проблемы с точками останова у меня решались перегрузкой системы(редко перегрузкой студии). Зато NTSD очень даже хорошо останавливался на любых точках останова.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

FeyFre, поставил то, что было под руками - VS2008 express. Подозреваю, проблема именно в том, что студия ищет некий отладочный файл и не находит. *тут следует экспрессивная сентенция на тему сравнения удобства VS и RAD studio, которая вырезана цензурой*
Я в этой среде дуб дубом, поэтому и прошу о руке помощи. Кстати, когда я пытался поковырять плаг к миранде, то же самое было. И это была, кажется, 2005-я студия.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre
Instructor, Вам конечно виднее, но по моему часть плагинов и редактор написаны на C++(ну не строится оно с ключом /TC как не крути).
Это был вызов :) Файлы в версии 4.5.0 будут с расширением С. Наличие расширения CPP обуславливалось тем, что компилятор отказывался компилировать COM вызовы на GCC, но спустя 3 года (предыдущее сообщение) решил поискать снова и нашел решение :)

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

О! Незнамо как, но оно зашевелилось!!! Причем ничего нового не делал, просто удалил проекты и собрал их полностью заново. И глюк с дублирующимся манифестом при сборке Акеля исчез, и в dll-ку входит и останавливается. Красота!

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Instructor
Дело не в расширении, что Вы. Простым переименованием точно не обойдетесь. 8)


Fr0sT, ключи линкеру и компилятору по поводу отладочной информации все задали? Я, кстати, особо не уверен насколько могуча експресс студия в плане отладки на ходу.
Миранда... на 6.0 и на 9.0 студиях вроде-бы работало(однажды пришлось допилить брошенный три года назад плагин, который не мерился с некоторыми условностями 0.9).

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

FeyFre
в прошлую попытку дошёл до того, что повключал вообще ВСЁ, что только можно и что связано с отладкой - в итоге схлопотал 4 загадочных ошибки линкера. В этот, удачный, раз - только перенастроил пути, чтобы плаг компилился в AkelFiles\Plugs, и всё заработало. В миранде я как раз застопорился на стадии "отладочных символов".

Кстати, Инструктор, просто ради интереса: зачем реализовывать собственную функцию перевода регистра, если есть WinAPI функция CharUpperBuff? :)

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Кстати, Инструктор, просто ради интереса: зачем реализовывать собственную функцию перевода регистра, если есть WinAPI функция CharUpperBuff?
1. Где?(Вроде бы Инструктор пользуется такими везде где только видел).
2. CharUpperBuff и ей подобные имеют проблемы с некоторыми локалями(так в MSDN написано), потому наверно Инструктор решил рискнуть собственной реализацией.
В этот, удачный, раз - только перенастроил пути, чтобы плаг компилился в AkelFiles\Plugs, и всё заработало. В миранде я как раз застопорился на стадии "отладочных символов".
По опыту знаю: если есть исходники, то лучше всего отлаживаться компилируя самостоятельно, а не аттачится к сделанному кем-то бинарнику надеясь что сделанные кем-то другим отладочные символы подойдут.(Плагины к Акелу дебажу на собственноручно построенном Акеле).

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

FeyFre
Где?(Вроде бы Инструктор пользуется такими везде где только видел).
Не знаю, я увидел две "портянки" в AkelDLL, вот и спросил)
если есть исходники, то лучше всего отлаживаться компилируя самостоятельно, а не аттачится к сделанному кем-то бинарнику надеясь что сделанные кем-то другим отладочные символы подойдут
Просто я впервые с такими трудностями сталкиваюсь, в Дельфях прекрасно аттачился к совершенно чужим экзешникам без какой бы то ни было отладочной инфы и горя не знал.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Не знаю, я увидел две "портянки" в AkelDLL, вот и спросил)
Странно. AkelDLL в исходниками 4.4.9 с этой точки зрения "чист".
Просто я впервые с такими трудностями сталкиваюсь, в Дельфях прекрасно аттачился к совершенно чужим экзешникам без какой бы то ни было отладочной инфы и горя не знал.
Чур на Вас! Не переношу на дух Delphi/C Builder. :D
При определенной сноровке(при условии что матчасть прочли) любой отладчик атачится к бинарнику любого компилятора.(Сейчас вполне успешно можно с помощью MSVS отлаживать бинарники созданные Flat Assembler-ом с подтягиванием иходников)
Post Reply