powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Написание Класса для Офиса
25 сообщений из 28, страница 1 из 2
Написание Класса для Офиса
    #37009892
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код на вба был мною написан давно для работы
появилась потребность спрятать его от сторонних глаз
решил спрятать его в длл
начал пробывать с простого
написания функции в длл и ее вызова

блин не пойму в чем дело выдает ошибку Ран Тайм 429 и все тут

Винда 7 *64, визуал студия 2008, офис 2010 *64


в визуал студии

автор
Imports System
Imports System.Collections.Generic
Imports System.Text

Namespace DotNetLibrary

<ComClass(DotNetClass.ClassId, DotNetClass.InterfaceId, DotNetClass.EventsId)> _
Public Class DotNetClass

#Region "Идентификаторы COM GUID"
' Данные GUID обеспечивают идентификацию COM для данного класса
' и его COM-интерфейсов. При их изменении существующие
' клиенты потеряют доступ к классу.
Public Const ClassId As String = "92d77f83-80ed-4417-855d-424be509214a"
Public Const InterfaceId As String = "4b7e3a60-cfc6-4a52-9a23-c1717fba236c"
Public Const EventsId As String = "f3b1bfc4-770b-4ce0-a263-1f6800239027"
#End Region

' В классе COM, для которого разрешено создание, должна присутствовать процедура Public Sub New()
' без параметров, иначе класс не будет
' зарегистрирован в реестре COM и его будет невозможно создать
' посредством CreateObject.

Public Sub New()
End Sub

Public Function DotNetMethod(ByVal input As String) As String
Return "Hello " & input
End Function

End Namespace



в офисе

авторPrivate Sub CommandButton4_Click()
Dim testClass As New DotNetClass
'On Error Resume Next
MsgBox testClass.DotNetMethod("World") <== останавливается здесь
End Sub



COM Class выставлен в True
Сделать сборку видемой для КОМ галачка поставленна
Регистрация для КОМ взаимодействия галочка поставлена

с помощью regsvr32 библиотека зарегистрирована пишет успешно

что еще нужно ума не приложу
2 дня без успешной битвы

ПОМОГИТЕ ПОЖАЛУЙСТА!
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37009969
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюAert,

>Винда 7 *64, визуал студия 2008, офис 2010 *64

Круто, новый виток в жизни, респект, это ж всё летает

Клоун а по делу есть что сказать?
Если можно не пиши пожалуйста сюда...
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010000
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aert,

У вас вопрос, собственно, по .NET-овскому коду или по офису, которые не видит нужный класс?

"Ран Тайм 429" - это вся ошибка или текст есть? Или нам нужно коды ошибок выучить?

замените
Код: plaintext
Dim testClass As New DotNetClass
на
Код: plaintext
1.
Dim testClass As DotNetClass
Set testClass=New DotNetClass
экземпляр создается успешно?
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010008
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProAert,

У вас вопрос, собственно, по .NET-овскому коду или по офису, которые не видит нужный класс?

"Ран Тайм 429" - это вся ошибка или текст есть? Или нам нужно коды ошибок выучить?

замените
Код: plaintext
Dim testClass As New DotNetClass
на
Код: plaintext
1.
Dim testClass As DotNetClass
Set testClass=New DotNetClass
экземпляр создается успешно?


менял тогда ошибка вот тут
Set testClass=New DotNetClass
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010009
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что значит создается экземпляр успешно?
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010013
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertа что значит создается экземпляр успешно?
гм
вы имеете понимание, что такое класс и экземпляр класса? или вы стырили оттуда код, не понимая, как он работает и нужно с нуля все объяснять?

успешно - это без ошибок
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010016
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertменял тогда ошибка вот тут
Set testClass=New DotNetClass
Значит вы не подключили референс на нужный компонент

сделайте так:
Код: plaintext
1.
Dim testClass As Object
Set testClass=CreateObject("DotNetClass")
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010021
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

так я ж и пишу что это мой первый класс
потребности в них не было...

мне бы один рабочий пример... типа хеллоу ворд)
дальше бы сам
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010028
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProСделайте так:
Код: plaintext
1.
Dim testClass As Object
Set testClass=CreateObject("DotNetClass") 


Set testClass=CreateObject("DotNetClass") <== ошибка тут
при наведении пишет что testClass = Nothing
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010032
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertошибка тут
напряг хрустальный шар, текст ошибки не угадал
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010035
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
блин чую идеи и охота помочь отпала ((
ну все равно большое спасибо...
может еще у кого нибудь возникнут какие нибудь идеи...
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010037
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идеи будут, когда наконец догадаетесь написать текст сообщения об ошибке. Ну а на нет - и суда нет (и туда тоже нет)
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010049
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

извините написал ошибку в самом начале но по русски и не полностью
вот как реально она выглядит
Run-time error '429' ActiveX component can't create object
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010050
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще добавлю когда смотрю в офисе Object Browser
библиотека моя + классы + их члены все видно
чего ж гады работать не хотят не понимаю ... уже руки опускаться начинают
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010055
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertизвините написал ошибку в самом начале но по русски и не полностью
и для чего в правилах форума написано, чтобы текст ошибки писали полностью и "как есть" - без перевода?

Aertвот как реально она выглядит
Run-time error '429' ActiveX component can't create object

а) значит нет такого зарегистрированного класса в системе
б) есть, но у него есть более полная спецификация, типа Tralivali.DotNetClass

Что сделать, когда не знаешь, что делать :)
1) можно залезь в References и попробовать найти его глазами, добавить и тогда будет работать ваш первоначальный код
2) поискать в реестре DotNetClass, посмотреть, как он мог бы быть полностью специфицирован.
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010057
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertеще добавлю когда смотрю в офисе Object Browser
библиотека моя + классы + их члены все видно
чего ж гады работать не хотят не понимаю ... уже руки опускаться начинают

А-а-а. Раз видно, тогда проблема скорее всего с тем, что класс в .NET создан неправильно.

Тут я, боюсь, не подскажу, либо надо в ветке по NET пытаться консультироваться, либо Игорь или Антонарий что-нить умное скажут, боюсь, не раньше завтра.
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010062
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин уродство
взял отключил библиотеку ошибка тажа
то что она подключена походу толк нуль...

глянул в реестре зарегена вот тут
HKEY_CLASSES_ROOT\fromSap.DotNetLibrary.DotNetClass
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010065
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aertглянул в реестре зарегена вот тут
HKEY_CLASSES_ROOT\fromSap.DotNetLibrary.DotNetClass
попробуйте в CreateObject специфицировать двухкомпонентное или полное имя.
Но, мне кажется дело не в этом
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010081
Aert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прикреплю на всякий случай файлики
вдруг желание поглядеть будет
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010341
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Aert


В свойствах Net-проекта, нужно указать что длл будет содержать COM- объекты. Больше подсказать не могу, обратись лучше в
ветку по Net, там быстрее подскажут.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010581
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

Так вроде сделала. Указал что будут содержать Ком объекты.

ВОТ
COM Class выставлен в True
Сделать сборку видемой для КОМ галачка поставленна
Регистрация для КОМ взаимодействия галочка поставлена


Тут вот в чем дело
В экселе вроде DLL подключена в References
Но что она подлючена что не подключена ошибка все ровно одна и тажа 429
Хотя может быть дело и не в этом но все равно настараживает
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010661
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GВ экселе вроде DLL подключена в References
Но что она подлючена что не подключена ошибка все ровно одна и тажа 429

если не подключена, должна быть ошибка
User-defined type not defined

так что странно
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010666
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proесли не подключена, должна быть ошибка
User-defined type not defined
Кроме варианта с CreateObject разумеется - там подключать ничего не требуется
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010739
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Погуглил и наткнулся на следующее...
я этот ответ за 3 дня несколько раз видел и читал...
видно читал не очень внимательно

Собственно вот ответ на мою проблему
http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62/

Конкретно в пункте 4 написанно следующее

авторОригинал
4. You are trying to use the GetObject function to retrieve a reference to class created with Visual Basic.
GetObject can't be used to obtain a reference to a class created with Visual Basic.

ГуглПеревод
4. Вы пытаетесь использовать функцию GetObject для получения ссылки на класс, созданный с помощью Visual Basic.
GetObject не может быть использована для получения ссылки на класс, созданный с помощью Visual Basic.

тоесть чтоже получается я не могу создать библиотеку на Визуал Бейсике и подцепить ее к офису?
...
Рейтинг: 0 / 0
Написание Класса для Офиса
    #37010816
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

Не отчаивайтесь.
Можете.
Просто где-то какая-то галка не поставлена, надо рыть дальше.
И, наверное, все-таки в NET-овской ветке.

Я подключал NET-овский класс к VB6, стало быть и к офису возможно
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Написание Класса для Офиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]