Witam serdecznie. Mam taki problem, ze nie bardzo wiem jakiego typu zmniennej uzyc przy wyciaganiu z DLLa funkcji napisanej w C++, w VS C#. Funkcja w c++ przyjmuje jako parametr wskaznik na tablice elementow typu char.
Dziekuje.
Witam serdecznie. Mam taki problem, ze nie bardzo wiem jakiego typu zmniennej uzyc przy wyciaganiu z DLLa funkcji napisanej w C++, w VS C#. Funkcja w c++ przyjmuje jako parametr wskaznik na tablice elementow typu char.
Dziekuje.
Odpowiednikiem wskaznika jest IntPtr, ale na char* mozesz sprobowac string.
IntPtr najprosciej zalatwi sprawe, gdyz pozniej z niego mozna dowolny typ danych wyciagnac, jednak tego w jednej linijce nie zrobisz. char* rzutowane na stringa jest dobre ale tylko w przypadku kiedy wiemy ze wartoscia jest tekst (trzeba pamietac ze w .net tekst jest w unicodzie).
Niestety czasami char* jest uzywany jako wskaznik na tablice bajtow i rzutowanie i uzywanie string'a nie da nam nic dobrego.
Najlepsze efekty pod wzgledem czytelnosci kodu, daje uzycie atrybutu [MarshalAs(UnmanagedType)] i to szybko i latwo pozwoli zalatwic wiekszosc konwersji typow miedzy C# a dll'kami w C
Dzieki chlopaki za szybka odpowiedz, jutro napisze czy udalo sie rozwiazac. na pewno probowalem juz na stringa, ale bezskutecznie.
ostatnio mialem podobny problem tylko ze z long = int32