如何在c#中返回字符串数组并在非托管c ++中使用它?

时间:2009-06-24 11:10:18

标签: c# c++ com

任何人都可以告诉我如何从方法中返回一个String数组并在c#中使用它吗?

假设我必须返回{one,two,..... ten}的数组,并且在c ++中我必须显示它 控制台上的数组并执行一些操作。

1 个答案:

答案 0 :(得分:1)

请点击此处查看示例: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;
}