Тема: Сборка со значками
Думаю вопрос понятен из темы. И автокад и express tool, и SPDS Extension содержат свои значки в одном файле - скорее всего dll.
Как сделать свою сборку со значками и можно-ли исползовать не bmp, а, скажем, png?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Разное → Сборка со значками
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Думаю вопрос понятен из темы. И автокад и express tool, и SPDS Extension содержат свои значки в одном файле - скорее всего dll.
Как сделать свою сборку со значками и можно-ли исползовать не bmp, а, скажем, png?
Думаю вопрос понятен из темы. И автокад и express tool, и SPDS Extension содержат свои значки в одном файле - скорее всего dll.
Как сделать свою сборку со значками и можно-ли исползовать не bmp, а, скажем, png?
Вопрос как раз из темы не слишком ясен. Речь идет о иконках в меню? Тогда такую dll-можно сделать при помощи VS. Почитай про ResourceOnly Dll и опцию линковщика /NoEntry:
http://www.codeguru.com/forum/showthread.php?t=231256
http://msdn.microsoft.com/en-us/library … S.80).aspx
http://msdn.microsoft.com/en-us/library … S.80).aspx
Вот еще старая статья, но я до сих пор VB6 собираю иконки в одну dll
Создание в AutoCAD панели инструментов с использованием библиотеки DLL
Спасибо, Александр. Попробую... правда уверен, что не получится сразу и придется еще вопросы задавать :)
И вам, Владимир, спасибо, но я видел эту статью - этот вариант мне не понравился
Как-то отвечал на подобный вопрос:
http://forum.dwg.ru/showthread.php?t=31134
Нашел вот это:
Настройки проекта для создания ресурсной DLL в Visual Studio:
1. DLL
2. Пустой
3. Без MFCДругие:
4. Release
5. Имена ресурсов обязательно взять в кавычки (ID = "M5_001")
6. /NOENTRY (Linker => Advanced => No Entry => Yes)
7. Значки должны быть размером 16x16 и 32x32
но при попытке скомпилить такой проект вылетает ошибка error LNK1561: точка входа должна быть определена. Видимо я упустил какой-то момент, хотя /NOENTRY должна "обходить" LINK...
Одновременно писали :)
Николай, а можно чуть по подробнее для VS2010?
No Entry = Yes и означает, что точки входа не будет. Это особенность Resource-only DLL.
No Entry = Yes и означает, что точки входа не будет. Это особенность Resource-only DLL.
Ну а ошибка-то почему???
Проверьте свойства проекта. Должно быть DLL (без MFC), Release и Yes (/NOENTRY). Этого достаточно
Я может что-то упускаю?
Опишу действия:
1. Открыл VS2010 (русский)
2. Файл->Создать->Проект
3. Visual C++ -> Проект Win32
4. Далее в настройках: Тип приложения - пустой проект, Дополнительные параметры - пустой проект, Готово
5. В свойствах проекта: Свойства конфигурации - Конфигурация - Relase
6. Свойства конфигурации -> Компановщик -> Допонительно -> Без точки входа - Да/NOENTRY
7. Добавляю ресурсы из существующих файлов, меняю ID (типа "mptxtcenter_32x32")
8. Компилирую и получаю ошибку
Вроде компиляция прошла успешно, а как теперь эту dll использовать? И в настройках путь добавил и переименовал на имя моего cuix... не получается
Как и раньше: имя dll должно совпадать с именем cuix и лежать в той же папке. А в макросах панелей инструментов (!) cuix надо указать имена кнопок (ресурсов) из dll.
Я так полагаю, что вариант "разные имена, разные папки" не известен?
И полагаю, что создать такую сборку в NET тоже не представляется возможным?
И полагаю, что создать такую сборку в NET тоже не представляется возможным?
Что имеется в виду? Средствами .NET это сделать можно, но уж очень(!!!) хлопотно. Для этой цели нужно знать структуру ресурсного dll-файла и четко следуя ей записать свои картинки в него.
Что имеется в виду? Средствами .NET это сделать можно, но уж очень(!!!) хлопотно. Для этой цели нужно знать структуру ресурсного dll-файла и четко следуя ей записать свои картинки в него.
Пожалуй и пробовать не буду :) Хотя в SPDS Extension, мне кажется, это реализовано средствами .NET
Хотя в SPDS Extension, мне кажется, это реализовано средствами .NET
А причем здесь одно к другому? Одно дело ресурсная dll с иконками для меню AutoCAD, а другое дело программный код.
Кажется формат *.cuix содержит внутри иконки, так что проблема уже не актуальна...
Для старых версий можно воспользоваться таким вариантом... берем любую библиотеку поменьше размером (наименьший встречавшийся размер - 528 байт) и правим в Restorator :) Есть еще вариант - free basic... (дешево и сердито - всего 6 kb "мусора") остальные варианты - файл получается большего размера...
Кажется формат *.cuix содержит внутри иконки, так что проблема уже не актуальна...
т.е. если я в настройках апи файла добавлю иконки - они сохранятся в этом файле? слабо верится...
файл получается большего размера...
dll содержащая 16 иконок у меня весить 34кб - думаю в век террабайтных жестких это не так страшно :)
если я в настройках апи файла добавлю иконки - они сохранятся в этом файле? слабо верится...
Может для начала стоит попробовать?
Может для начала стоит попробовать?
Конечно попробовать стоило, но уже начал делать по другому. Все-равно - спасибо за совет!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Разное → Сборка со значками
Форум работает на PunBB, при поддержке Informer Technologies, Inc