|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Этот вопрос я частично затрагивал в теме http://www.sql.ru/forum/1134626/licenzionnyy-kod-pri-ustanovki-programmy Там этот вопрос уклонялся от темы , поэтому решил создать именно узконаправленную! В интернете прочитал о том как это делается. В одних источниках пишут что можно передавать по ссылке, тогда нужно использовать модификатор ByRef. Но в прошлой теме пользователь отписал другое http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1134626&msg=17076736 Например мне нужно передать простейшую процедуру в dll. Код: vbnet 1. 2. 3. 4.
Я думал это сделать так: Код: vbnet 1. 2. 3.
Но в таком виде при каждом изменении переменной а в основном проекте, переменная b в dll не будет изменяться. А мне как раз нужно чтобы менялась переменная b. Подскажите пожалуйста как правильно записать в данном случае. Заранее благодарен за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 20:00 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 00:19 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.Proа переменная b при этом где объявлена? Переменная b объявлена в основном проекте. Shocker.Proи вообще, используйте это - сразу прояснится в голове Прочитал. Не прояснилось ибо уж каким бы я чайником не был а вот Option Explicit знаю что такое. и для чего нужно. Но я понимаю что вы отправили мне это именно из-за вопроса про переменную b. Код: vbnet 1. 2. 3. 4. 5.
Вот поправил как в основном проекте записано. А в dll ссылкой так чтобы b изменялась не знаю как перенести. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 12:15 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
я же писал вам в предыдущей ветке - вы не вникли dll-ка не имеет ни малейшего понятия о том, кто ее вызвал, естественно, не имеет ни малейшего понятия о переменной "b", объявленной в другом проекте. обмениваться данными можно различными способами - самое простое в данном случае - использовать в dll Function вместо Sub или ByRef параметры ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 13:15 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.Prodll-ка не имеет ни малейшего понятия о том, кто ее вызвал, естественно, не имеет ни малейшего понятия о переменной "b", объявленной в другом проекте. Это я понял, так даже переменная а не меняется. Хотя я ее в dll объявил же. Если как вы сказали с помощью Function, то вот так получится если записать в dll Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 13:45 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
vdekameronХотя я ее в dll объявил жеАга. А значение где назначали этой "а"? Тоже внутри DLL? Вообще если хотите менять переменную из одного проекта в другом(а по сути именно этого и хотите) - надо сначала прописать в DLL процедуры назначения значений переменных. Подключить DLL к своему проекту(если честно из двух ссылок в первом посте так и не понял как именно Вы подключаете DLL к рабочему проекту). Если она зарегистрирована - то ссылаться на функции в ней можно через CreateObject. Т.е. создаете свою DLL(с именем, скажем "MyDLL") с классом Class1. В нем создаете функцию: Код: vbnet 1. 2. 3. 4.
и уже в основном проекте при каждом изменении "а" надо будет вызывать изменение "b" Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 21:05 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
The_PristВообще если хотите менять переменную из одного проекта в другом(а по сути именно этого и хотите) Я хочу, чтобы при изменении переменной в проекте, она менялась и в dll(чтобы они связаны были) The_Pristкак именно Вы подключаете DLL к рабочему проекту Да никак не подключаю. Просто создаю пустой dll, нигде не регистрирую, компилирую. И в проекте проверяю просто на наличие этого dll, создавая объект Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2015, 14:29 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
vdekameronЯ хочу, чтобы при изменении переменной в проекте, она менялась и в dll(чтобы они связаны были)Ваш проект и dll-ка - это ДВА РАЗНЫХ проекта. При этом в вашем случае, они не работают ОДНОВРЕМЕННО! Работает либо один, либо другой. А ОДНА переменная НЕ МОЖЕТ присутствовать одновременно в двух проектах и тем более одновременно изменяться в них. СНАЧАЛА меняете переменную в одном проекте, ПОТОМ передаете ее значение в другой проект, ПОТОМ меняете ДРУГУЮ переменную в этом другом проекте. Так понятнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2015, 14:46 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.ProТак понятнее? Более чем! Если взять реальный пример:- Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Я хотел, например, выражение VB=VelVB перенести в dll. Предполагаю, что раз переношу туда, то в этой процедуре ее уже не будет, а будет ссылка на ,допустим, Project1.dll. Напишите ,пожалуйста, как это выражение правильно перенести и объявить в dll, чтобы при изменении данных в основном проекте, расчет производился правильно. Т.е. при ОТСУТСТВИИ этого выражения в основном проекте расчет все-равно выполнялся ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2015, 15:50 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
vdekameronНапишите ,пожалуйстаЯ очень надеялся, что можно будет обойтись без этого и сможете сами сделать выводы из всего того, что было написано в двух топиках и из учебника. К тому же Антонарий изначально давал вам конкретный пример. К сожалению, я вас переоценил ( vdekameronЯ хотел, например, выражение VB=VelVB перенести в dll в проекте Код: vbnet 1.
в dll Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2015, 17:05 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.ProК сожалению, я вас переоценил ( Старался, видимо мало. Буду больше. Но не для вас, а для себя. А именно для того, чтобы спецы ,как вы, не писали таких комментов. Читаю сейчас Лукина(автор). Для вас это конечно детский уровень. А за помощь спасибо! буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2015, 17:44 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Все получилось! Еще раз большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2015, 13:25 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Может вопрос немного не по теме, но он касается той же безопасности. Перевожу сейчас справку по SF Если я на каком то этапе установки программы импортирую какие-то значения реестра. Это коим образом повлияет на безопасность? Т.е. добавит уровень защиты? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2015, 11:14 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Я что-то в тупике. Создал на работе ActiveX dll, перенес туда переменные. Все работало. Скинул на флешку пришел домой, запустил, а проект не видит этот dll. Хотя он в той же папке с проектом. В чем может быть причина ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 21:00 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
в том, что dll не зарегистрирована ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 21:22 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.Pro, Как же я до этого то, делал то же самое-работало. А тут на тебе. Уважаемый Shocker.Pro , может это винда глючит? Хм. Я бы этого не говорил если бы не еще один глюк:- С помощью SF указал что при установки проги в реестр записать ключи. А в самой проге(как вы уже знаете) делаю проверку на их наличие. Так вот...устанавливаю прогу дома, иду в реестр в нужный раздел. А фигушки. Кючей не видно. Запускаю в пошаговом прогу, расставляю точки. Показывает,что эти ключи есть. А в реестре ну не вииижу их. Меняю в проге имя одного ключа- выдает ошибку, значит они реально есть в реестре. Это как) А через SF я их вижу в реестре, когда нажимаю- "Импорт разделов реестра" Это тоже закономерность или моему буку дома нужна мед. помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 00:43 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
попробуйте зарегистрировать вручную и проверить (regsvr32) про реестр мало что могу сказать, мало с ним имел дело, может с правами там что-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 00:45 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.Pro, Эмм...т.е. Вы хотите сказать что все старания и труды напрасны Если я буду ставить готовый продукт юзерам(dll планирую закидывать куда-то в :C\windows), то получается что работать не будет елки-палки, или в этом случае они будут зарегистрированы? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 07:19 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 08:56 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Доброе утро! Уважаемый Shocker.Pro, сейчас на работе проделал следующее :- 1) Переместил dll из папки где весть проект на раб. стол. Итог- проект не видит dll 2) Перемещаю назад в папку, где был создан- все работает. Напрашивается вывод:- Дома конечно не тот путь к dll , может поэтому проект не видит его? Но раньше же я перемещал эту dll куда хотел, когда тестил, и лишь тогда, когда удалял ее, прога ругалась матом. P.S. Но тогда когда я тестил я вроде компилировал сам проект. Сейчас еще не компилировал...может как-то с этим связано. Уже не знаю на что грешить! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 08:58 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Shocker.Pro, Еще раз прочитал ваш коммент:- Студия автоматически регистрирует dll-ку при компиляции по месту компиляции. Установщик зарегистрирует ее по месту копирования. Можно вручную зарегистрировать ее командой regsvr32. В связи с этим простое переименование файла библиотеки ничего не даст. Дошло Спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 09:03 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Них. не могу понять. Уже нервничаю. Код: vbnet 1. 2. 3. 4. 5.
Почему Generaciia и Pritok получают значения а Napor =0..???? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
PS 1)Все три переменные объявлены глобально в модуле кода, т.к. нужны в трех формах 2)Переменные VB и NB объявлены как Double в dll и Napor тоже как Double и в модуле кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2015, 17:43 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
ЗЫ: не стоит злоупотреблять отступами там, где код находится на одном уровне иерархии. Отступы делаются внутри условий, циклов и подобных вещей. Последовательно выполняющиеся команды должны быть на одном уровне ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2015, 17:49 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5.
где переменные ваши объявлены, вы можете нормальный полный код выложить целиком, а не кусками выдранными из контекста? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2015, 17:51 |
|
Правильный перенос процедуры из проекта в Activexdll
|
|||
---|---|---|---|
#18+
А я бы вообще не советовал использовать в качестве переменных такие сочетания как VB...Хоть внутри процедуры именно эта переменная будет иметь приоритет - все же следует убедиться, что Вы не подменяете значение иного объекта. Лучше как-то так хотя бы: dblVB И префикс есть, указывающий на тип хранимых данных и название Вам понятное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2015, 17:53 |
|
|
start [/forum/topic.php?fid=60&msg=38893939&tid=2156009]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 302ms |
total: | 449ms |
0 / 0 |