Przepisanie programu C++ na C#

0

Witam, mam pytanie odnośnie, od czego zacząć przepisywanie programu do jezyka C#, jestem w nim troche zielony a program napisany jest w C++/CLI, w sumie to bardziej w C++ ale posiada jedną Forme na której oparty jest cały program, posiada troche plików nagłówkowych .h i teraz pytanie jak to zacząć ? mam zrobioną formę, która zachowuje się tak jak powinna, a teraz jak "prze konwertować" wszystkie pliki nagłówkowe do C# ? Nie musze używać jakis converterów, mogę pisać linia po linii tylko jak to zacząć ? Od czego ?

0

To wszystko zalezy od tego co to za aplikacja, co dokladnie robi, z jakich bibliotek korzysta, jak jest zaprojektowana, itd itd. Generalnie jak nie korzysta z czegos specyficznego dla C++ i chcesz ja przepisać całą, to po prostu przeklepuj klasa po klasie i juz;) Ewentualnie mozesz w aplikacji c++ wydzielic osobną DLLke zawierającą wszystko oprocz gui i zaimportowac sobie w aplikacji c# - wtedy wystarczy ze zrobisz osobne gui, powiazesz wszystko i voila;)

2

Wyrzuć wszystkie pliki nagłówkowe, wyrzuć wszystko związane z zarządzaniem pamięcią, pozostałe 4 linijki przepisz na C#

0

Witam, mam pytanie odnośnie, od czego zacząć przepisywanie programu do jezyka C#, jestem w nim troche zielony a program napisany jest w C++/CLI, w sumie to bardziej w C++ ale posiada jedną Forme na której oparty jest cały program, posiada troche plików nagłówkowych .h i teraz pytanie jak to zacząć ?

Jeśli to duży program to ja bym nie zaczynał, bo to nie ma sensu. Ja wiem, że C++/CLI jest uważany za niekoszerny, ale co właściwie miałoby dać to przepisywanie?

0

Program ma trochę lini kodu, ale trzeba przepisać, przyda sie to w późniejszym etapie, nie znam się dokładnie ale trzeba wykorzystać .NET, ale mam takie pytanko, mam pliki np. Plug.cpp oraz kilka plików .h które posiadają definicje klas, funckji itp. Po prostu kilka plików nagłówkowych. plik Plug.cpp dołącza kilka tych plików nagłówkowych poprzez #include. Wiem że pliki nagłówkowe z C++ do C# mogę przepisać jakoś na klasy tj. X.h + X.cpp = X.cs. Nie wiem czy to jest dobrze ale czy mogę np. każdy plik .h stworzyć jako oddzielną klase/plik .cs ? A później dopiero w pliku Plug.cs odwoływać sie do tych klas ? Czy źle myśle ?

1

Każda klasa powinna znajdować się w własnym pliku *.cs z nazwą odpowiadającą nazwą klasy. W C# zwyczajnie pomijasz pliki nagłówkowe, wszystko umieszczasz w jednym pliku

class MojaKlasa
{
    private int elem = 3;
    public int foo()
    {
        return 2 + elem;
    }
}

Nie ma sensu rozdzielać tego na 2 pliki, C# i tak nie ma include więc nie będziesz miał problemów z klasami zdefiniowanymi w dwóch różnych miejscach

0

Aha czyli najlepiej będzie zrobić jeden plik .cs i tam wszystkie klasy i wszystko wpakować ? Nigdy nie pisałem w C# wiec mam tak jakby nawyk dzielenia programu na "podpliki"

0

Nie. Powinno być 1 klasa => 1 plik.
Bez podziału na pliki nagłówkowe i źródłowe.

0

Tak jak napisał Zellus możesz podzielić projekt na wiele plików cs.

0

Źle zrozumiałem :P A jeśli mam plik nagłówkowy który zawiera tylko struktury ?

0

A czy tworzenie plików cokolwiek Cię kosztuje? :D
Generalnie jest to raczej kwestia preferencji, zależy trochę od tego czy strukturę wykorzystujesz tylko wewnątrz jednego pliku, czy w kilku miejscach. Naprawdę, nie jest to aż tak istotne, sam najlepiej wybierz sobie sposób który najbardziej Ci odpowiada.

0

To ja jeszcze dopowiem, że oprocz wymienionych wyżej 2 podejść:

  • każda klasa w osobnym pliku
  • wiele klas w jednym pliku/ klasy małe i "podobne" pogrupowane w osobnych plikach,

masz jeszcze jedno możliwe podejście, możesz klasy rozbijać na wiele plików. Klasy musza być poprzedzone słowem kluczowym patial i generalnie robi się to przede wszystkim w klasach odpowiedzialnych za gui - pierwsza czesc opisuje layout (xaml dla wpfa, albo "kontrolkowy" opis dla winforms) + druga czesc klasy (osobny plik) opisuje code behind - event handlery, jakas drobna logika gui, obsluga niecodzinnych corner casow itd

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