o ile udało mi się pod linuxem podłaczyć się do "dllki" (czyli pliku so) i wywołać metodę bezargumentową to jak wywował metode z argumentami jak
clock_gettime
dzięi za pomoc
o ile udało mi się pod linuxem podłaczyć się do "dllki" (czyli pliku so) i wywołać metodę bezargumentową to jak wywował metode z argumentami jak
clock_gettime
dzięi za pomoc
Ja uzywalem w magisterce linuxowych natywnych komend nie wiele moge ci pomoc ale poakze przykladowy kod:
[DllImport("libc.so.6", EntryPoint = "open")]
public static extern int Open(string fileName, int mode);
[DllImport("libc.so.6", EntryPoint = "ioctl", SetLastError = true)]
private extern static int Ioctl(int fd, int request, int data);
[DllImport("libc.so.6", EntryPoint = "read", SetLastError = true)]
internal static extern int Read(int handle, byte[] data, int length);
[DllImport("libc.so.6", EntryPoint = "pread", SetLastError = true)]
internal static extern int Read(int handle, byte[] data, int length, int offset);
tak to mialem zaimplementowane wewnatrz klasy w ktorej zuywalem nastepnie wolalem normlanie metode np Read() i podwalem argumenty w niej jakby byla zwykla metoda w c# :)
Musisz zmapować typy na odpowiednie struktury. Możesz wczytywać się w dokumentację, możesz też zerknąć na jakieś przykłady z https://pinvoke.net/ i odpowiednio zrobić kopiuj-wklej-dostosuj.
@Antyktokolwiek
kod jak kod, szału nie ma
public static class NativeMethods
{
[DllImport ("libc.so.6")]
public static extern int clock_gettime(CLOCK_MONOTONIC, &t);
}
chodzi mi jak przekazać argumenty do metody
gdy wywołuję metodę bezparametrową jest git
w cpp tez jest git :)
ale jak to zrobić w C#?
jak zmapować - na pewno ostatni argument można by zrobić out var - ale co, jak to jest jakaś struktura
CLOCK_MONOTONIC - tez muszę to jakoś przekazać, ale jak
nie mam pojecia jak się w takich przypadkach mapuje struktury z cpp na c#