Я новичок в мире микрософт. У меня много проблем, пытаясь передать простую строку из C# в dll/C++ Я прочитал много сообщений и документации, но проблема такая же.Marshalling string from C# to C++
C++ код
extern "C" __declspec(dllexport) int Init(long l , char* url);
C# код
[DllImport("MCRenderer.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = false)]
public static extern int Init(long a, StringBuilder url);
Init(hndl.ToInt64(), str);
, что haeppen является то, что передается долго значение правильно, а параметр строки
0x00000000 <Bad Ptr>
вы можете мне помочь ... И действительно смущен спасибо !! AG
Я сделал быстрый поиск - StringBuilder полезен для Юникода, так что может быть причиной его там. – Tesserex
, но если вы поместите строку, это сработает? –
Нет, очевидно, это не так, потому что у него все еще есть проблема 'int' /' long' ... :) (Также: Почему бы не работать 'StringBuilder'? Не можете ли вы передать его как' [In, Out] '?) – Mehrdad