Size: a a a

2020 December 22

A

A_D in CODE BLOG / C#
если сделать через делегат - то строка появляется даже, но потом порча памяти всёравно
источник

G

Gopneg in CODE BLOG / C#
A_D
[DllImport("JLinkARM.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern string JLINKARM_OpenEx(ref string pfLog, ref string pfErrorOut);

вот с этим импортом всё связано
MarshalAs(UnmanagedType.LPStr еше попробуй на параметрах
https://stackoverflow.com/questions/30028593/how-do-i-pass-a-const-char-to-a-c-function-from-c
источник

A

A_D in CODE BLOG / C#
далал уже и через IntPtr и по разному..
источник

A

A_D in CODE BLOG / C#
тоже смотрел, не работает
источник

A

A_D in CODE BLOG / C#
там именно запись в функцию
источник

A

A_D in CODE BLOG / C#
а у меня получается внешняя dll выделяет память, пишет туда и прога на шарпе должна прочитать строку
источник

A

A_D in CODE BLOG / C#
сейчас покажу, как это с делегатом выглядит
источник

G

Gopneg in CODE BLOG / C#
там каллбек что ли?
источник

G

Gopneg in CODE BLOG / C#
источник

A

A_D in CODE BLOG / C#
вот так строка появляется, но приложение падает всё равно
источник

A

A_D in CODE BLOG / C#
public static extern string JLINKARM_OpenEx(CallbackLogDelegate pfLog, CallbackLogDelegate pfErrorOut);
источник

A

A_D in CODE BLOG / C#
public delegate void CallbackLogDelegate(string data);
источник

A

A_D in CODE BLOG / C#
Gopneg
там каллбек что ли?
сейчас покажу
источник

A

A_D in CODE BLOG / C#
источник

A

A_D in CODE BLOG / C#
источник

A

A_D in CODE BLOG / C#
и этот тип обьявлен как const char *
источник

G

Gopneg in CODE BLOG / C#
а ты уверен что у тебя падает на строке, а не на каллбеке?
источник

A

A_D in CODE BLOG / C#
источник

A

A_D in CODE BLOG / C#
Gopneg
а ты уверен что у тебя падает на строке, а не на каллбеке?
падает на функции, из которой что то пишется в калбек
источник

A

A_D in CODE BLOG / C#
Gopneg
а ты уверен что у тебя падает на строке, а не на каллбеке?
вместо него я пробовал и IntPtr и просто string и как ref \ out задавать - почти все тоже самое
источник