Console na Dll przerobic

0

Witam wszystkich. Przepraszaz za pisownie, nie mam polskich liter.
Szukam pomocy w przerobieniu Console programu na Dll.
Wszystko w C# z kturym mam badrzo malo do czynienia. Troche VB.NET polizalem.
Chodzi o to ze mam Dll ktura uzywam z Consloe programu.
Wszystko dziala jak trzeba, tyle ze ja chcialbym ta dll w delphi uzywac.
Przyklad dll ktury potrafie uzyc w Delphi

using System;
using System.Runtime.InteropServices;
using System.Windows.Input;

namespace DLL_Test1
{
    public interface ICalculator
    {
        double Add(double aVal1, double aVal2);
    }

    public class Calculator : ICalculator
    {
        public Calculator()
        {
        }
        public double Add(double aVal1, double aVal2)
        {
            return aVal1 + aVal2;
        }
    }
}

Tak stworzona Dll moge uzyc w Delphi (po przetrasportowaniu i registracji)

procedure TForm1.Button1Click(Sender: TObject);
var
  Calc: ICalculator;
begin
  Calc:= CoCalculator.Create as ICalculator;
  ShowMessage(FloatToStr(Calc.Add(12,5)));
end;

A tutaj moj program ktury jako Console dziala.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using DatenDLL;

namespace Daten
{
    class Program
    {
        static void Main(string[] args)
        {
            var Daten = new DatenDLL.DatenDLL(args[1], Convert.ToInt32(args[2]), args[3], args[4]);
            Daten.Info = true;
            var checkok = Daten.Check();
            var message = Daten.ReturnMessage;
        }

    }
}

Mam nadzieje ze dobrze wszystko wyjasnilem, jesli nie to chetnie to poprawie.
W sumie chce ten Cod z Console jako dll w delphi uzyc.
Tan Cod nie robi nic innego jak uzywa druga dll w kturej jest dodane pare Danych i jako string wracaja do Consoli.
Mysle ze nie jest to zbyt trudne, ale moje znajomosci C# sa znikome wiec nie dam sobie z tym rady.
Za pomoc bylbym bardzo wdzieczny.

0

Czyli chcesz użyć DLL .NET'owego z poziomu natywnego kodu (Delphi)?

Opcje:

Pamiętaj że taka DLL'ka zawsze będzie potrzebować .NET runtime'u do działania.

0

Hi
Ja opisalem ze wiem jak uzyc dll z .NET w delphi. To nie jest moj problem.
Nie chce sie uczyc .NET czy tez nowej metody. To jest jednorazowa sprawa.
W sumie moj problem jest zamiana Console na Dll w C#
Tu chodzi praktycznie o te 4 linijki Kodu.

            var Daten = new DatenDLL.DatenDLL(args[1], Convert.ToInt32(args[2]), args[3], args[4]);
            Daten.Info = true;
            var checkok = Daten.Check();
            var message = Daten.ReturnMessage;

Te linijki trzeba tak napisac aby wywolywealy Class w innej DLL gdzie jest Class DatenDLL. W formie jak calkiem u gury napisalem, bo ta forme juz potrafie w delphi utywac. Po portacji naturalnie.
Twoja metoda mi nic nie pomoze bo ja nadal nie wiem jak zrobic z tego Kodu na Console Kod na Dll.
Czyli stoje gdzie bylem. Dziaki na razie ale szukam nie tego.

3

usuń "static", dodaj "public" do "class Program", zmień w propertiesach projektu "Output type" z "Console" na "Class library", postępuj jak z klasą Calculator

możesz zamienić argument z tablicy string[] i używania args[0], args[1] na osobne parametry typu string a, string b i używania a, b zamiast tego. Możesz też od razu użyć typu int, wtedy nie musisz konwertować parametru ze stringa: Convert.ToInt32(args[2])

Nie możesz od razu użyć tej biblioteki DatenDLL w delphi?

0

Hi te odpowiedzi mi nie pomogä. Ja pisalem ze C# nie znam. Nie bede sie tez na ten jeden Projekt tym zajmowal.
No cöz. Z braku laku zabralem sie za pröby i rozgryzlem problem.
Juz potrafie tä Dll stworzyc i w Delphi uzyc.

Powstal maly dodatkowy problem, zanim bede godzinami szukal rozwiäzania moze ktos szybko podppowie.
Zaznaczam, nie potrafie nic w C#

Mam Liste w C# W delphi jest to StringList w C# nie wiem jak sie to nazywa.
data[0] = 12.12.2021
data[1] = 15.11.2020
data[2] = 12.01.2020
...
Jak to na szybkiego zamienic na string?
Znaczy abym mial Str = 12.12.2021|15.11.2020|12.01.2020
Nie wiem jak w C# napisac petle aby wartosci wyczytac
Moze ktos na szybkiego wesprze.

1
string.Join("|", data)
0

Wszystko dziala jak trzeba.
Dziekuje wszystkim za pomoc.

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