Написать Аддин, меняющий константу условной компиляции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Написать Аддин, меняющий константу условной компиляции

Сообщение arthur2 » 28.04.2009 (Вт) 11:58

Как такое реализовать? Хотелось бы, чтобы при компиляции в исполняемый файл бейсик менял константу условной компиляции в свойствах проекта (не в тексте модуля!) на DEBUGING=0. Не плохо бы, чтобы бейсик при этом ещё и спросил - а надо ли :)

И ещё - может ли Аддин добавлять библиотеку в референцы проекта?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение Хакер » 28.04.2009 (Вт) 12:09

В свойствах, кажется, никак. В коде — легко.

И ещё - может ли Аддин добавлять библиотеку в референцы проекта?

Насколько я помню, может.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение arthur2 » 28.04.2009 (Вт) 12:47

В коде — легко.

Ну, это в том смысле, что просто найти строку и поменять? Или есть какое-то средство узнать значение констант без перебора строк?

То есть, лобовое решение представляется мне таким: находим строки, содержащие "#const ", читаем из них значения, при компиляции меняем на нужное, после компиляции меняем на как было.

А есть ли способ не в лоб - какие-нибудь методы или свойства, связанные именно с условной компиляцией?

И - а как вообще поймать момент, когда проект компилируется в бинарный файл? Какое-нибудь событие?

Хакер писал(а):Насколько я помню, может.

А как? или хотя бы - куда смотреть?

И ещё один вопрос возник - а можно ли привязать загрузку\незагрузку аддина к конкретному шаблону проекта?
Артур
 
   

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение trash » 28.04.2009 (Вт) 13:12

Или есть какое-то средство узнать значение констант без перебора строк?
А есть ли способ не в лоб - какие-нибудь методы или свойства, связанные именно с условной компиляцией?
И ещё один вопрос возник - а можно ли привязать загрузку\незагрузку аддина к конкретному шаблону проекта?
Нет.
или хотя бы - куда смотреть?
F2
И - а как вообще поймать момент, когда проект компилируется в бинарный файл? Какое-нибудь событие?
Можно попробовать содержимое FileControlEvents.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение arthur2 » 28.04.2009 (Вт) 13:32

trash писал(а):Нет.

жаль :roll:

trash писал(а):F2

Это-то понятно... и где там искать референцы проекта?

trash писал(а):Можно попробовать содержимое FileControlEvents.

Чей-то про компиляцию нам не нашел :(
AfterAddFile
AfterChangeFileName
AfterCloseFile
AfterRemoveFile
AfterWriteFile
BeforeLoadFile
DoGetNewFileName
RequestWriteFile
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение Хакер » 28.04.2009 (Вт) 13:39

Чей-то про компиляцию нам не нашел


Из FNDLL2:
Код: Выделить всё
Private Sub FileEvents_AfterWriteFile(ByVal VBProject As VBIDE.VBProject, ByVal FileType As VBIDE.vbext_FileType, ByVal FileName As String, ByVal Result As Integer)
    If IsValidProject And (FileType = vbext_ft_Exe) And (Not InfoProviderC Is Nothing) Then
        If Result = 0 Then
            Dim b As Boolean
            ProcessDLLFile FileName, b
        End If
        DisconnectInfoProvider
    End If
End Sub



Это-то понятно... и где там искать референцы проекта?

VBProject::References
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение arthur2 » 28.04.2009 (Вт) 14:08

Спасибо! Уже рою :)

Хакер писал(а):
Код: Выделить всё
Private Sub FileEvents_AfterWriteFile....

Но это я не очень понял... Афте - это же после?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написать Аддин, меняющий константу условной компиляции

Сообщение Хакер » 28.04.2009 (Вт) 14:16

Да, потому что у меня модернизация DLL идёт после того, как DLL создан. Но ведь есть RequestFileWrite?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 35

    TopList