Wykorzystanie w Delphi biblioteki DLL używanej w C#

0

Witam !

W załączniku znajduje się plik DLL oraz przykład użycia w C#

Pytanie jest takie: Czy jest możliwe dobranie się do tego DLL-a z poziomu Delphi ???

Nie jestem specjalistą od C# wiec nie wiele z tego rozumiem, niemniej help do tego DLL mowi o C#, VB6, oraz VB NET co może oznaczać ze nie jest tylko do jednego języka

Próbowałem zainstalować tego DLL jako Active X ale Delphi podaje komunikat: The OLE control does not support self-registration.

Czy ktoś może wie jak się do togo dobrać, i wywoływać funkcje z Delphi ??

Pozdrawiam Szymon

0

jeśli ta dllka jest dla .net i nie jest przystosowana do bycia COMem to pod inny niż .NET tego nie podepniesz.

1

A) Napisać COM-owy wrapper w C# (nie próbowałem)
B) Napisać wrapper tzw. mixed-mode w C++/CLI (próbowałem, działa).

0

Witam !

abrakadaber <- Poprawka do poprzednich informacji, help jest dla C#, C++ i Visual Basic (ten ostatni chyba nie podlega pod NET ???), niemniej żeby go VB zobaczył musiałem te bibliotekę zainstalować przy pomocy setup.exe który podczas instalacji oczywiście poprosił o dot neta 2.0

W załączniku Plik helpa do tej biblioteki możne tam coś więcej będzie ?? są opisane Classes, Interfaces, Delegates niemniej dalej nie wiem jak do tego się dobrać z Delhi

Co ciekawe C# nie wymaga instalacji tej biblioteki tylko jej obecności w katalogu programu.

Co do sposobu dodawania jej do projektu w C# to zwyczajnie dodaje ją do resources i się pojawia, tak wiec pytanie czy da się to jakoś dodać w Delphi? Pytam bo Help Delphi jest często pisany jednocześnie z helpem C wiec może są jakieś podobieństwa ?

Azarien <- Nie mam bladego pojęcia o czym piszesz ;-( Proszę o wersje dla lamera ;-)

pozdrawiam
Szymon

0

JEŚLI się w ogóle da to zrobić to prawdopodobnie z wykorzystaniem http://msdn.microsoft.com/en-us/library/6t9t5wcf%28v=vs.110%29.aspx
Jeśli kod do tej biblioteki c# jest dość mały to chyba łatwiej będzie przepisać.
Lub to co naisał @Azarien co może się okazać, że jest tyle samo roboty co przy przepisywaniu kodu.

0

Azarien <- Nie mam bladego pojęcia o czym piszesz ;-( Proszę o wersje dla lamera

B) napisać natywno-zarządzaną DLL-kę w Visual C++, która z jednej strony ma bezproblemowy dostęp do .NET Frameworka i zarządzanych bibliotek, a z drugiej strony może eksportować zwykłe funkcje globalne, które będą widoczne pod Delphi.

0

Witam

Nie wiem czemu uparliście się tak na ten .NET ???

Czy Visual Basic 6.0 używał .net ?? to ma z 10 lat.

kawałek kodu z VB

Attribute VB_Name = "Program"
Public store As IComVisionSensorStore

Czy to nie jest kontrolka typu COM ???? Jak to potwierdzić ??

Wszytko helpy, dll, i sample kody w załącznikach w poprzednich mailach.

Osobiście sadzę że ktoś to pisał możliwie uniwersalnie a nie pod C# szczególnie że VB6 jest w stanie korzystać z tego samego DLL-a

Tak na prawdę to moje pytanie jest jak mając DLL stwierdzić jakiego jest typu i czym się za niego zabrać, jak już pisałem import jako Active X kończy się błędem, wiec może wołać funkcje bezpośrednio? Może są jeszcze inne metody zamiast opakowywać tego dll kodem tłumaczącym z Delphi na C#

Pozdrawiam
Szymon

dodanie znacznika <code class="vbnet"> - Furious Programming

1

Da sie i to bez problemu. Bez zadnych cudow w stylu ComVisible.

https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

Korzystam z tego z powodzeniem w swoim frameworku. Komunikacja przez dll z pomoca interface.

1
crowa napisał(a):

Da sie i to bez problemu. Bez zadnych cudow w stylu ComVisible..

potwierdzam, stosowaliśmy kiedyś Cuda w stylu comvisible. i były jaja na maksa.

https://sites.google.com/site/robertgiesecke/ ten pan to pokazał w delphi i potwierdzam że działało świetnie

zanim będziesz ćwiczył ostre rzeczy weź spróbuj najpierw coś prostego typu C# dll z Metodą np : int Add(int a; int b), oraz ze stringiem - (tu możesz mieć problem z kodowaniem przekazywaniem znaków itp)
Po-testuj i weź się za trudniejszy przykład :)

0

do stringow uzywaj typu OleVariant po stronie delphi - po stronie C# - object

0

Witam !

lightning3, crowa <- Dziękuje za odpowiedź

Nie ukrywam ze z tematu o jakim piszecie jestem zielony jak szczypiorek na wiosnę ;-)

Czy rzeczy o jakich piszecie pójdą na Delphi 7.0. Dodam że biblioteka jest napisana przez Japończyków i w pierwszej linii SDK pisze: jak masz problem to radź sobie sam ;-((

Nie ma też jak walczyć najpierw z lekkimi rzeczami bo w DLL jest to co jest ;-(

Czy mogę prosić jakiś mały przykład uruchomienia w Delphi chociaż jednej funkcji ??? (dll i helpy są w załącznikach ), nie mam pojęcia jak się nawet do tego zabrać

Pozdrawiam
Szmyon

1 użytkowników online, w tym zalogowanych: 0, gości: 1