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

标签 c# c++ com

谁能告诉我如何从方法返回字符串数组并在 C# 中使用它?

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

最佳答案

示例见此处: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;
}

关于c# - 如何在 C# 中返回字符串数组并在非托管 C++ 中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037709/

相关文章:

c# - 在 C#/.Net 中创建进程外 COM?

php - 与 PHP 通信 ATL COM dll

c# - 可查询语言词典和单词搜索功能

c# - 如何在一个文件夹中构建所有项目?

c# - 如何取消订阅此 lambda 事件?

c++ - 使用 C++ 标准库在 Linux 上编译

c# - 如何在Window认证中使用Application.LoadFromSQLServer

c++ - 命名空间范围问题

C++ 编译器或链接器优化

c++ - COM - 在 C++ 中使用 IEnumerable