C#调用Delphi编译的DLL函数库返回大文本数据
C#调用Delphi编译的DLL库获取大文数据
如果用PChar作为指针传递参数会丢失数据,之前做过测试,理想的方法是用StringBuilder对象分配一段内存区. 下面的代码是C#.NET枚举Novell网络中的对象(如用户/组/组织单元等). API 函数定义: LDAP_DLL_DelphiComplied.NovellGetObjects() [DllImport(DLL_NAME, EntryPoint = "NovellGetObjects", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NovellGetObjects(string NovellPath, string ClassName, StringBuilder ADestBuffer, int ADestSize); C#.NET实现: /// <summary> /// 获取Novell网对象 /// </summary> /// <param name="NovellPath">有效路径.如: .mis.csframework.com 或 .xx.cn</param> /// <param name="ClassName">取对象类型: Organizational Unit,Group,User </param> /// <returns></returns> public static DataTable NovellGetObjects(string NovellPath, string ClassName) { try { StringBuilder sb = new StringBuilder(100000); int count = LDAP_DLL_DelphiComplied.NovellGetObjects(NovellPath, ClassName, sb, 100000); return GetStringTable(sb.ToString()); } catch { return null; } } // 来源:www.CSFramework.com, C/S结构框架学习网 DELPHI 实现: function NovellGetObjects(NovellPath: PChar; ClassName: PChar; ADestBuffer: PChar; ADestSize: Integer; only3: Integer): Integer; stdcall; export; var S: string; begin S := DirTools.NovellGetObjects(NovellPath, ClassName, only3 = 1); //获取字符串 Move(S[1], ADestBuffer^, Min(ADestSize, Length(S) 1)); Result := Length(S); end; // 来源:www.CSFramework.com, C/S结构框架学习网 扫一扫加作者微信
参考文档:
Delphi程序调用C#.Net编译的DLL并打开窗体(详解) C#插入图片数据并返回自增字段(ISID)的值 C# 动态编译及调用WebService的方法 [转帖]C#如何调用非托管函数(一) [转帖]C#如何调用非托管函数(二)-传递结构和类 [转帖]C#如何调用非托管函数(三)-实现回调函数 C#调用C++编译的DLL详解 C#SQL客户端处理大文本数据通用接口 C#.Net对象内存模型及堆/栈数据结构详解 (三) C#.Net 调用Delphi 编译的ActiveX COM组件(原) C# 给绑定数据源的文本框.Text属性赋值,但没有保存数据 实例化Loginer和DAL层对象,调用方法返回数据 SQLServer SQL函数解析JSON数据格式并返回表 C#使用正则表达式移除所有的Html标记,返回纯文本 C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |