zoukankan      html  css  js  c++  java
  • C# 通过 参数返回 C++ 指针

    参数返回 C++ 指针

    C++ 代码

     Extern_C  BASECORELIBRARY_API  char  *  GetFileByteArray(wchar_t * BinfilePath, wchar_t *BinfileName,int indexFile, int * length , char  **at11t)
     {
    
    
         char *chBinfilePath= nullptr, *chBinfileName = nullptr;
         wchar_tTranstoChar(BinfilePath, &chBinfilePath);
         wchar_tTranstoChar(BinfileName, &chBinfileName);
    
         char a[] = "13345zh中文 hello";
    
         int  fileCount = sizeof(a);
             /// sizeof(char*);
         char  * att = new char[fileCount];
    
         memcpy(att, a, fileCount);
        
         *length = fileCount-1;
    
         free(chBinfilePath);
         free(chBinfileName);
          *at11t = att;
         return  att;
        // return  fileCount;
     }

    C# 代码

            [DllImport("BASECORELIBRARY.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
            public static extern IntPtr GetFileByteArray(string BinfilePath, string BinfileName, int indexFile,ref  int length, ref IntPtr test);
    
    
       IntPtr piBuf2 = IntPtr.Zero;
    
     IntPtr piBuf = InvokeDLL.GetFileByteArray(newFilePath, toBinName, 0, ref length, ref piBuf2);
                
                byte[] arrayBuf = new byte[length];
                Marshal.Copy(piBuf,arrayBuf,0, length);
  • 相关阅读:
    java集合Collection常用方法详解
    JavaWeb_cookie和session
    JavaWeb_Cookie
    Java中双向链表
    Java链表基础
    select函数详解及实例分析
    socket select函数的详细讲解
    记录远程用户登录日志
    MSSQL grant
    dll 中使用ADO
  • 原文地址:https://www.cnblogs.com/bkyrslf/p/12077908.html
Copyright © 2011-2022 走看看