zoukankan      html  css  js  c++  java
  • C#调用C++动态库时字符串作为输出参数的问题

    常常会觉得一个返回值不够,在C#中使用out或者ref都很方便,下文记录字符串类型作为传入参数且需要修改后返回的处理方式。
    C++中的接口:

    extern "C" __declspec(dllexport) void GetString(char* str);
    

    C++中的实现:

    void GetString(char* str)
    {
        // str字符串需要传出去,所以用的是外部给的一块空间,不要在这里重新为str做new
        string a = "Ceshi";
        // 注意这里长度需要加1
        strcpy_s(str, a.length() + 1, a.c_str());
    }
    

    C#中的调用:

    // 使用StringBuilder来存储这个字符串,要注意初始化足够的长度
    StringBuilder sb = new StringBuilder(1024);
    GetString(sb);
    
  • 相关阅读:
    linux-常用命令
    linux
    测试基础
    链家笔试1
    链家笔试2
    链家笔试3
    MySql优化
    Http1.1和Http2.0
    Charles学习
    链表中倒数第k个结点
  • 原文地址:https://www.cnblogs.com/yutou2016/p/14473354.html
Copyright © 2011-2022 走看看