首页 > 编程 > C++ > 正文

c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] (zz)

2019-11-06 07:41:13
字体:
来源:转载
供稿:网友
/ Inclusion guard#ifndef _DLLTUT_DLL_H_#define _DLLTUT_DLL_H_// Make our life easier, if DLL_EXPORT is defined in a file then DECLDIR will do an export// If it is not defined DECLDIR will do an import#if defined DLL_EXPORT#define DECLDIR __declspec(dllexport)#else#define DECLDIR __declspec(dllimport)#endif// Specify "C" linkage to get rid of C++ name mangelingextern "C"{    // Declare 2 functions    DECLDIR int Add( int a, int b );    DECLDIR void Function( void );    DECLDIR void GetPRt( char * prtStr );}// End the inclusion guard#endif      static void Main(string[] args)        {            test.Function();            Console.WriteLine("result: " + test.Add(2, 3).ToString());            //string str = "aaddddddddddd";            byte[] str = new byte[12];            test.GetPrt(ref str[0]);            Console.WriteLine(System.Text.Encoding.GetEncoding("GB2312").GetString(str));            Console.ReadLine();        }    }    class test    {        [DllImport("..//..//lib//DLLTest.dll")]        public static extern  void Function();         [DllImport("..//..//lib//DllTest.dll")]        public static extern int Add(int i,int j);        [DllImport("..//..//lib//DllTest.dll")]        public static extern void GetPrt(ref byte prtStr);    }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选