Форум: "Прочее";
Текущий архив: 2014.04.27;
Скачать: [xml.tar.bz2];
ВнизCOM объект на .NET вызов из Delphi Найти похожие ветки
← →
Sign (2013-11-05 14:02) [0]Есть библиотека (файл с расширением dll), созданная на .Net.
По описанию, которое идет к этой библиотеке, якобы, это COM объект. В поставке к библотеке есть примеры на VB.Net.
Вот, вызов:
Imports MySignature = Wrapper.SData
...
Dim Sign As MySignature
Sign = New MySignature
WriteLog("Version: " + Sign.Version)
...
Пытаюсь запустить на Delphi.
По неясным мне причинам вызов объекта не срабатывает:
var Obj:OleVariant;
begin
Obj:=CreateOleObject("Wrapper.SData"); //недопустимая строка с указанием класса
Что не так? Может нужно создать библитеку типов? До этого имел опыт работы с обычными объектами — все работало.
Может объекты созданные в .Net отличаются? Спасибо.
← →
sniknik © (2013-11-05 14:06) [1]32 или 64 битная версия объекта? и какая дельфя?
← →
Sign (2013-11-05 14:12) [2]Delphi7.
Библиотека 32 битная.
← →
sniknik © (2013-11-05 14:12) [3]не знаю как там с .Net, не сталкивался, а вот с IE (TWebBrowser) были случаи когда 64х битная версия установлена а 32нет, и прога на 7й дельфе соответственно не работала.
хотя там ActiveX, а не просто COM, но как вариант...
← →
sniknik © (2013-11-05 14:15) [4]> Imports MySignature = Wrapper.SData
а вот это точно определение обьекта?
в VB script было типа -
Set oShell = Wscript.CreateObject("WScript.Shell")
← →
Sign (2013-11-05 14:24) [5]>а вот это точно определение обьекта?
Не знаю. Не знаток VB.Net. Но дело в том, что файлов с именем "Wrapper.SData" нет и близко. Да и вообще, в папке с примером только vb, vbproj, config, resx. В них тоже ничего интересного нет.
← →
sniknik © (2013-11-05 14:46) [6]> что файлов с именем "Wrapper.SData"
если это COM то это не имя файла, а строка в реестре по которой определяется гуид обьекта... ну в общем то сам объект.
когда создаешь COM можешь указать любое имя, и даже не одно. совпадения с именем файла "случайны". ну например для 1с - "V82.Application" при том что файл - "1cv8.exe".
← →
sniknik © (2013-11-05 14:47) [7]> Есть библиотека (файл с расширением dll), созданная на .Net.
кстати, а что говорит при выполнении "regsvr32 файл с расширением dll" ?
← →
Sign (2013-11-05 14:59) [8]> кстати, а что говорит при выполнении "regsvr32 файл с расширением dll" ?
...dll была загружена, но найти точку входа для DllRegisterServer не удалось. Зарегистрировать этот файл невозможно.
← →
sniknik © (2013-11-05 15:25) [9]х.з., возможно конечно, что написанное на .Net нужно регистрировать как то по другому... но скорее всего это не COM объект.
или не стандартный (есть еще вариант когда регистрируется не сам исполняемый файл, а через файл c расширением tlb, но тогда он должен присутствовать в поставке)
← →
sniknik © (2013-11-05 15:28) [10]> есть еще вариант
+
сомневаюсь кстати, что в 32-битной версии dll найдет "точку входа" 64-битная regsvr32... как и наоборот впрочем.
← →
sniknik © (2013-11-05 15:40) [11]> х.з., возможно конечно, что написанное на .Net нужно регистрировать как то по другому...
ага
http://msdn.microsoft.com/ru-ru/library/tzat5yw6%28v=VS.100%29.aspx
← →
Sign (2013-11-05 16:21) [12]2 sniknik © (05.11.13 15:40) [11]
Попробовал. Опять не хочет.
regasm SignWrapper.dll /tlb:mySign.tlb
RegAsm error: Failed to load "путь к файлу" because it is not a valid .NET assembly
Написал в поддержку. Жду ответа. Пока больше вопросов, чем ответов.
← →
VICTOR_ (2013-11-05 19:47) [13]См. http://www.delphimaster.net/view/15-1213775073/all
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.04.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c