如何在基于 Visual-C++ 的 .net DLL 中从 C# 接收字符串?
Posted
技术标签:
【中文标题】如何在基于 Visual-C++ 的 .net DLL 中从 C# 接收字符串?【英文标题】:How to receive strings from C# in Visual-C++ based .net DLL? 【发布时间】:2010-08-21 22:15:33 【问题描述】:如何在基于 Visual-C++ 的 .net DLL 中接收来自 C# 的字符串?
在 C++ 中(使用 clr)我有这个代码:
#include "stdafx.h"
##include <Windows.h>
#include <string>
#include <windows.h>
namespace NSST
public ref class Wrapper
public:
Wrapper()
static void init_1(std::string a, std::string b)
static void init_2()
;
;
但在 .net C# 中,我只看到一个函数 init_2
。如何使init_1
在.net 中可见?
【问题讨论】:
【参考方案1】:你不能使用std::string,你应该使用System::String^:
static void init_1(System::String^ a, System::String^ b);
【讨论】:
以及如何将 System::String^ a 转换为 std::string a?有可能吗? 好的,看这里:buffered.io/2007/03/02/net-systemstring-to-ansi-char 上述文章的更新链接:buffered.io/posts/net-systemstring-to-ansi-char(如果旧的 cmets 也可以编辑,那就太好了)。以上是关于如何在基于 Visual-C++ 的 .net DLL 中从 C# 接收字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 unsigned short* 从 Visual-C++ DLL 传递到 VB.NET