【问题标题】:C# call c++ method with string parameter from wrapped classC# 使用包装类中的字符串参数调用 c++ 方法
【发布时间】:2016-06-13 04:08:08
【问题描述】:

我正在尝试调用使用字符串参数的 c++ 类的方法,但出现此错误

错误 CS0570 'Wrapper.write(int, ?)' 不受语言支持

基本上我有这个代码,它可以与其他没有字符串对象的简单方法一起使用

我阅读了this,但由于它们不是静态方法,我无法使用它

有什么想法吗?

在 C# 中

Wrapper tb = new Lib.Wrapper();
tb.write( 1, "tablas.txt");

在 C++ Lib.h 中

private:
     myCppClass* pMyCppClass;
public:
     Wrapper();
     int write(int id, String^ file);

还有 C++ Lib.cpp

int Lib::Wrapper::write(int id, String^ file)
{
     std::string aux= marshal_as < std::string > (file);    
     return pMyCppClass->write(id, aux);
}

【问题讨论】:

  • C++ 库是托管 C++ 吗?
  • 是的,它是一个管理 c++ 包装一个未管理的 c++ 类 (myCppClass)
  • 你能给源C++ Lib吗?我尝试创建这种情况,但对于管理 C++ 来说一切正常。
  • 我发现库没有更新,所以我删除了 dll,清理了解决方案,重新编译并再次在 C# 中添加了引用,它可以工作

标签: c# c++ string


【解决方案1】:

我发现库没有更新,所以我删除了 dll,清理了解决方案,重新编译并再次在 C# 中添加了引用,它可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2017-08-24
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多