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);
  • 相关阅读:
    v-for基本使用
    SSH
    Git 命令
    bower笔记
    gulp使用例子
    yeoman使用例子
    grunt搭建
    不会误解的名字
    Python 多线程 多进程
    Python 协程
  • 原文地址:https://www.cnblogs.com/bkyrslf/p/12077908.html
Copyright © 2011-2022 走看看