编组字符串,C ++到C#:“转换并不库支持”
-
10-07-2019 - |
题
要点:
当试图使用编组到字符串数据传递到从C#中的C ++ DLL,我发现了
'msclr ::互操作:: error_reporting_helper <_To_Type,_From_Type> :: marshal_as': 这种转换不支持 库或所需要的标头文件 此转换不包括在内。 请参阅文档上 “如何:扩展编组 库”添加自己 编组方法。 C:\程序 文件\微软的Visual Studio 9.0 \ VC \包括\ msclr \ marshal.h 203
我使用Visual Studio 2008专业版;视觉C ++ 2008; .NET 3.5。
详情:
有关(在其最简单的形式)的方法如下:
LibDSSDLL::DssOutputSocketFacade::DssOutputSocketFacade(const System::String^ name)
{
marshal_context^ context = gcnew marshal_context();
std::string n = context->marshal_as<std::string>(name);
this->socket = new DssOutputSocket( n);
}
报头包括在他们的顺序被呈现给预处理器是
#include "StdAfx.h"
#include <string>
#include <iostream>
#include <msclr\marshal_cppstd.h>
#using <mscorlib.dll>
using namespace System;
using namespace msclr::interop;
这在我看来就像它符合例子列举这里并在MSDN文档(栈溢出,拒绝让我举一个第二URL);然而显然C ++编译器未找到其需要的转化率。
有什么我错过了?我承认我不是很专家,C ++或Windows。
解决方案
在文档没有说明它需要的常量强>字符串^。取出常量。
不隶属于 StackOverflow