Тема: Сборка со значками

Думаю вопрос понятен из темы. И автокад и express tool, и SPDS Extension содержат свои значки в одном файле - скорее всего dll.
Как сделать свою сборку со значками и можно-ли исползовать не bmp, а, скажем, png?

Re: Сборка со значками

Александр Пекшев aka Modis пишет:

Думаю вопрос понятен из темы. И автокад и 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

Re: Сборка со значками

Вот еще старая статья, но я до сих пор VB6 собираю иконки в одну dll
Создание в AutoCAD панели инструментов с использованием библиотеки DLL

Re: Сборка со значками

Спасибо, Александр. Попробую... правда уверен, что не получится сразу и придется еще вопросы задавать :)
И вам, Владимир, спасибо, но я видел эту статью - этот вариант мне не понравился

Re: Сборка со значками

Как-то отвечал на подобный вопрос:
http://forum.dwg.ru/showthread.php?t=31134

Re: Сборка со значками

Нашел вот это:

Настройки проекта для создания ресурсной 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...

(изменено: Александр Пекшев aka Modis, 16 сентября 2010г. 22:39:49)

Re: Сборка со значками

Одновременно писали :)
Николай, а можно чуть по подробнее для VS2010?

Re: Сборка со значками

No Entry = Yes и означает, что точки входа не будет. Это особенность Resource-only DLL.

Re: Сборка со значками

No Entry = Yes и означает, что точки входа не будет. Это особенность Resource-only DLL.

Ну а ошибка-то почему???

Re: Сборка со значками

Проверьте свойства проекта. Должно быть DLL (без MFC), Release и Yes (/NOENTRY). Этого достаточно

Re: Сборка со значками

Я может что-то упускаю?
Опишу действия:
1. Открыл VS2010 (русский)
2. Файл->Создать->Проект
3. Visual C++ -> Проект Win32
4. Далее в настройках: Тип приложения - пустой проект, Дополнительные параметры - пустой проект, Готово
5. В свойствах проекта: Свойства конфигурации - Конфигурация - Relase
6. Свойства конфигурации -> Компановщик -> Допонительно -> Без точки входа - Да/NOENTRY
7. Добавляю ресурсы из существующих файлов, меняю ID (типа "mptxtcenter_32x32")
8. Компилирую и получаю ошибку

Re: Сборка со значками

Вроде компиляция прошла успешно, а как теперь эту dll использовать? И в настройках путь добавил и переименовал на имя моего cuix... не получается

Re: Сборка со значками

Как и раньше: имя dll должно совпадать с именем cuix и лежать в той же папке. А в макросах панелей инструментов (!) cuix надо указать имена кнопок (ресурсов) из dll.

Re: Сборка со значками

Я так полагаю, что вариант "разные имена, разные папки" не известен?
И полагаю, что создать такую сборку в NET тоже не представляется возможным?

Re: Сборка со значками

Нет.
Нет.

Re: Сборка со значками

Александр Пекшев aka Modis пишет:

И полагаю, что создать такую сборку в NET тоже не представляется возможным?

Что имеется в виду? Средствами .NET это сделать можно, но уж очень(!!!) хлопотно. Для этой цели нужно знать структуру ресурсного dll-файла и четко следуя ей записать свои картинки в него.

Re: Сборка со значками

Что имеется в виду? Средствами .NET это сделать можно, но уж очень(!!!) хлопотно. Для этой цели нужно знать структуру ресурсного dll-файла и четко следуя ей записать свои картинки в него.

Пожалуй и пробовать не буду :) Хотя в SPDS Extension, мне кажется, это реализовано средствами .NET

Re: Сборка со значками

Александр Пекшев aka Modis пишет:

Хотя в SPDS Extension, мне кажется, это реализовано средствами .NET

А причем здесь одно к другому? Одно дело ресурсная dll с иконками для меню AutoCAD, а другое дело программный код.

Re: Сборка со значками

Кажется формат *.cuix содержит внутри иконки, так что проблема уже не актуальна...
Для старых версий можно воспользоваться таким вариантом... берем любую библиотеку поменьше размером (наименьший встречавшийся размер - 528 байт) и правим в Restorator :) Есть еще вариант - free basic... (дешево и сердито - всего 6 kb "мусора") остальные варианты - файл получается большего размера...

Re: Сборка со значками

Кажется формат *.cuix содержит внутри иконки, так что проблема уже не актуальна...

т.е. если я в настройках апи файла добавлю иконки - они сохранятся в этом файле? слабо верится...

файл получается большего размера...

dll содержащая 16 иконок у меня весить 34кб - думаю в век террабайтных жестких это не так страшно :)

Re: Сборка со значками

Александр Пекшев aka Modis пишет:

если я в настройках апи файла добавлю иконки - они сохранятся в этом файле? слабо верится...

Может для начала стоит попробовать?

Re: Сборка со значками

Может для начала стоит попробовать?

Конечно попробовать стоило, но уже начал делать по другому. Все-равно - спасибо за совет!