Я застрял на стороне реализации С#, так как я новичок в этом. Дело в том, что я хочу передать «указатель» (имеющий память) из кода С#, чтобы мое приложение С++ могло копировать буфер pchListSoftwares в pchInstalledSoftwares. Я не могу понять, как передать указатель со стороны С#.
собственный код С++ (MyNativeC++DLL.dll)
void GetInstalledSoftwares(char* pchInstalledSoftwares){
char* pchListSoftwares = NULL;
.....
.....
pchListSoftwares = (char*) malloc(255);
/* code to fill pchListSoftwares buffer*/
memcpy(pchInstalledSoftwares, pchListSoftwares, 255);
free(pchListSoftwares );
}
Передача простой "строки" не работает...
Реализация С#
[DllImport("MyNativeC++DLL.dll")]
private static extern int GetInstalledSoftwares(string pchInstalledSoftwares);
static void Main(string[] args)
{
.........
.........
string b = "";
GetInstalledSoftwares(0, b);
MessageBox.Show(b.ToString());
}
Любая помощь приветствуется...