visualman писал(а):В компоненты такие DLL не добавляются (Error loading library или что по такое).
visualman писал(а):Вся документация на Dll есть.
visualman писал(а):А отчёт я себе отдаю...
visualman писал(а):Декларации писал, не прокатывает. Без ошибок, но тупо не работает.
FireFenix писал(а):Значит ты просто не умеешь с ней работать.
Хакер писал(а):Является ли она ...
Qwertiy писал(а):Насколько я представляю, все .NET dll одинаковы.
Хакер писал(а):Но с точки зрения внешнего мира они являются чем-то из упомянутого (или не упомянутого). Вот надо написать, чем они являются.
Хакер писал(а):И если они хоть как-то допускают вызов из внешнего недотнетского мира
Qwertiy писал(а):А являются ли?
Qwertiy писал(а):А они допускают?
Qwertiy писал(а):FireFenix писал(а):Значит ты просто не умеешь с ней работать.
Хм... А это вообще возможно? Кроме Си++.NET?
Хакер писал(а):В любом случае они являются чем-то.
echo public static class Sample { public static int Sum(int x, int y) {return x+y;} } >sample.cs
%systemroot%\Microsoft.NET\Framework\v3.5\csc.exe /target:library /optimize+ /debug- /out:sample.dll sample.cs
del sample.cs
Qwertiy писал(а):Расскажи чем - интересно узнать
Хакер писал(а):Я-то откуда знаю?
Хакер писал(а):Ну так и выложи сюда хоть что-нибудь
Qwertiy писал(а):Версию фреймвёка выберешь из имеющихся у тебя
- Код: Выделить всё
echo public static class Sample { public static int Sum(int x, int y) {return x+y;} } >sample.cs
%systemroot%\Microsoft.NET\Framework\v3.5\csc.exe /target:library /optimize+ /debug- /out:sample.dll sample.cs
del sample.cs
Qwertiy писал(а):1. А при чём тут вообще VB6?
2. Твой код правильный и даже работает!
3. Для обращения к сервису он должен быть запущен...
4. Для регистрации url надо запускать хост с админскими правами.
Вызвать надо в VB6 или все же в VB.NET? Если второе, то никаких проблем быть не должно вообще, если все-таки VB6, то решение ЕМНИП описано у Эпплмана в "Переход на VB .NET. Стратегии, концепции, код".visualman писал(а):VB при том, что я на нём буду должен писать тестовые скрипты для C# библиотек. Ибо на C# я писать не умею.
Viper писал(а):Вызвать надо в VB6 или все же в VB.NET? Если второе, то никаких проблем быть не должно вообще, если все-таки VB6, то решение ЕМНИП описано у Эпплмана в "Переход на VB .NET. Стратегии, концепции, код".visualman писал(а):VB при том, что я на нём буду должен писать тестовые скрипты для C# библиотек. Ибо на C# я писать не умею.
visualman писал(а):Viper писал(а):Вызвать надо в VB6 или все же в VB.NET? Если второе, то никаких проблем быть не должно вообще, если все-таки VB6, то решение ЕМНИП описано у Эпплмана в "Переход на VB .NET. Стратегии, концепции, код".visualman писал(а):VB при том, что я на нём буду должен писать тестовые скрипты для C# библиотек. Ибо на C# я писать не умею.
Из VB6
Qwertiy писал(а):
- Код: Выделить всё
echo public static class Sample { public static int Sum(int x, int y) {return x+y;} } >sample.cs
%systemroot%\Microsoft.NET\Framework\v3.5\csc.exe /target:library /optimize+ /debug- /out:sample.dll sample.cs
del sample.cs
http://interop.managed-vcl.com/netinterop_csharp.php писал(а):Initiate .Net object without COM
It is possible to create instance of .Net class without registering it for COM. In this case .Net assembly should be located in GAC or in project directory. T o do this us e ClrCreateManagedInstance() function exported from mscoree.dll - main .Net file (like ole32.dll for COM) . This function works like CoCreateInstance() for COM objects.
Example in handler for "Create .Net object without COM" button uses external keyword but it is possible to load mscoree.dll with LoadLibrary() function and get address of ClrCreateManagedInstance() with GetProcAddress().
When calling ClrCreateManagedInstance(), supply full class name (including namespace) and assembly name, such as: "Interop.Test.InterfacedClass, CSharpAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b4eba4c5f06ce523" and interface you want to get - IUnknown, IDispatch or any interface that is implemented in .Net class and is COM visible. .Net object needs to have public contructor without parameters.
Qwertiy писал(а):У тебя вообще сервис, а не dll. Ему абсолютно всё равно, кто его вызывает. Проблем не должно быть ни с одним языком, в котором поддерживаются сервисы.
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
Vi писал(а):Из Calc\CalcLib\Properties\AssemblyInfo.cs :
- Код: Выделить всё
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
Ты ничего с ней из VB6 не сделаешь. Потому что пустая она. Попробуй "RegAsm.exe /tlb CalcLib.dll", чтобы убедиться в её пустоте.
visualman писал(а):Ну как же пустая? Я прекрасно с ней из vb.net работаю. Там одна функция - GetSum
Vi писал(а):visualman писал(а):Ну как же пустая? Я прекрасно с ней из vb.net работаю. Там одна функция - GetSum
Тебе нужно в VB6 или в VB.NET? Там механизм доступа к метаданным разный. Наверное, мне нужно было уточнить, что с точки зрения VB6 (как и вообще СОМ) она пустая.
visualman писал(а):Ладно, я уже смирился.
Хакер писал(а):visualman писал(а):Ладно, я уже смирился.
Это худшее, что можно сделатьв твоём случае. В любом случае.
visualman писал(а):КЭП, спасибо! Поста бы небыло, была бы она COM. VB6 нужен. Ладно, я уже смирился. Придётся на .NET писать. Можно пост закрывать.
Сейчас этот форум просматривают: AhrefsBot и гости: 2