Как вернуть массив строк в c # и использовать его в неуправляемом c ++? - PullRequest
0 голосов
/ 24 июня 2009

Может кто-нибудь сказать мне, как вернуть массив String из метода и использовать его в c #?

Предположим, мне нужно вернуть массив {один, два, ..... десять} и в C ++ я должен отобразить это массив на консоли и выполнить некоторые действия.

1 Ответ

1 голос
/ 24 июня 2009

См. Здесь пример: http://haroonsaeed.wordpress.com/2006/08/11/interop-managed-c-and-c/

не сделал это сам, но по предположению:

в C # создать сборку csharpassembly.dll со следующим классом

using System;
namespace Csharpassembly  {
 public class CSharpClass {
   public static string[] GetStrings() { 
    return new string[] {"1", "2", "3"}));
   }
 }
}

Но в вашем случае. Иметь сборку, которая создает массив в c #, и иметь программу mC ++, которая ссылается на эту сборку и вызывать ее:

#include "stdafx.h"

#using <mscorlib.dll>
#using "csharpassembly.dll"

using namespace System;
using namespace Csharpassembly 

__gc class Test {
public:

    static void ProcessCShaperStrings()     {
        array^ stringArray = CSharpClass::GetStrings();
        Console::WriteLine(stringArray [0]); ...
        // etc

    } 
};
int wmain(void) { 
    Test:: ProcessCShaperStrings();    
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...