Advertisement

使用PB调用ICSharpCode.SharpZipLib.dll中的Gzip方法,并提供C#编写PB可用的DLL示例。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
利用C#语言开发能够与Portable Basic (PB) 兼容的动态链接库 (dll) 的方法,一个典型的示例是实现Gzip压缩。具体而言,该方法依赖于ICSharpCode.SharpZipLib.dll库的运用。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 使ICSharpCode.SharpZipLib.dll实现PBGzip压缩及C#PBDLL
    优质
    本文章介绍如何利用ICSharpCode.SharpZipLib库在PowerBuilder中实现GZIP数据压缩,并提供一种将C#代码封装为PB可调用的DLL的方法。 使用C#编写可以在PowerBuilder(PB)环境中使用的DLL方法的例子是实现Gzip压缩功能。此例子利用了ICSharpCode.SharpZipLib.dll库中的相关方法来完成这一任务。 具体步骤包括: 1. 首先确保已经安装或引用了ICSharpCode.SharpZipLib.dll。 2. 创建一个新的C#类库项目,并添加对ICSharpCode.SharpZipLib的引用。 3. 在你的类中,使用GzipStream或者其他相关方法来实现压缩和解压的功能。 下面是一个简单的示例代码片段: ```csharp using System.IO; using ICSharpCode.SharpZipLib.GZip; public class GZIPHelper { public byte[] Compress(byte[] data) { using (var ms = new MemoryStream()) { using (GZipOutputStream gzipStream = new GZipOutputStream(ms)) { gzipStream.Write(data, 0, data.Length); } return ms.ToArray(); } } public byte[] Decompress(byte[] compressedData) { using (MemoryStream inputStream = new MemoryStream(compressedData)) { using (GZipInputStream gzipInputStream = new GZipInputStream(inputStream)) { const int bufferSize = 4096; byte[] buffer = new byte[bufferSize]; using (MemoryStream outputStream = new MemoryStream()) { int sourceBytes; while ((sourceBytes = gzipInputStream.Read(buffer, 0, bufferSize)) > 0) outputStream.Write(buffer, 0, sourceBytes); return outputStream.ToArray(); } } } } } ``` 以上代码定义了一个名为GZIPHelper的类,其中包含两个方法:Compress用于压缩数据,Decompress用来解压已经经过gzip格式处理的数据。这些函数可以直接在PB项目中通过导入相应的DLL文件来使用。 请根据具体需求调整和优化上述示例代码以适应不同的应用场景或环境配置要求。
  • C++ DLLPB
    优质
    本示例介绍如何在PowerBuilder中调用C++编写的动态链接库(DLL),包括准备工作、函数声明及接口实现等步骤。 关于如何在PB中调用C++ DLL程序范例的介绍包括了C++源代码、DLL文件以及PB中的调用代码。
  • PBDLL
    优质
    本示例介绍如何在编程环境中通过动态链接库(DLL)来扩展程序功能,详细演示了从创建到调用DLL的关键步骤和注意事项。适合初学者学习实践。 动态链接库(Dynamic-Link Library),简称DLL,在Windows程序设计中扮演着重要角色。使用DLL具有诸多优点: 1. 动态连接不涉及将库代码复制到内存,而只是在程序中记录函数的入口点与接口信息,并且仅在执行时加载所需的部分。如果多个应用程序共享同一DLL,则只需将其载入一次至内存即可,从而节省了宝贵的系统资源。 2. DLL不仅仅包含可执行代码,还能够存储数据和各种类型的资源文件,这大大拓宽了库文件的应用场景。 3. 对于大型且不断更新的软件项目来说,将重复的功能封装成DLL并通过主程序调用是一个明智的选择。这样做不仅简化开发流程、减少工作量,还能显著提升运行效率。 4. DLL增强了PowerScript语言的编程能力,使开发者能够利用超出标准函数库之外的新功能。比如:如果需要构建图像处理系统来查看文件并将其存储在数据库中,则可能需要用到浏览器相关操作;然而由于PowerScript本身并未提供此类工具或方法,因此开发人员可以通过调用第三方提供的DLL实现与硬件设备的直接通信。 5. DLL具有跨语言特性,大多数Windows编程环境都支持从不同程序(如VC++、VB、PowerBuilder、Delphi及汇编等)中加载和使用。这使得开发者可以灵活选择最适合项目的工具和技术栈来创建高性能的应用。 以下通过一个实例展示如何利用DLL实现PowerBuilder与VC++之间的互操作性。
  • C# DLLPB.rar
    优质
    本资源提供了一个详细的教程和实例代码,展示如何在PowerBuilder(PB)中调用C#编写的DLL文件。适合需要进行跨语言集成开发的技术人员参考学习。 C#由于其简单易用且功能强大而受到广泛欢迎。PowerBuilder作为客户端/服务器架构下的MIS开发工具,因其简洁灵活、开发速度快以及成本低等特点,一直是中小企业信息管理系统中的首选。然而,PB的局限性限制了它的进一步发展,这一点许多使用PB的人都很清楚。如何在PowerBuilder中调用C#编写的DLL一直是一个有趣且值得解决的问题。经过查阅资料和编写代码测试后,在VS2015与PB9.03 8836环境下成功解决了这个问题。
  • C# DLLPB.doc
    优质
    本文档详细介绍了如何在PowerBuilder(PB)环境中调用C#编译产生的动态链接库(DLL),涵盖了必要的步骤和代码示例。 C#因其简单易用且功能强大而受到广泛喜爱。PowerBuilder作为客户端/服务器(CS)模式下的MIS开发工具,以其简便灵活、开发周期短以及低开发与维护成本的特点,在中小企业信息管理系统中一直占据首选地位。然而,PB的局限性限制了其进一步的发展,这一点对于熟悉PB的朋友来说是显而易见的。如何让PowerBuilder调用C#编写的DLL文件引起了我的兴趣,并促使我着手解决这个问题。通过查阅大量资料并亲自编写代码进行测试后,终于找到了解决方案。
  • C# DLLPB 9.0
    优质
    本简介介绍如何在PowerBuilder 9.0中调用C#编译的DLL文件的方法和步骤,帮助开发者实现不同语言环境下的代码互操作性。 在使用PB 9.0调用C# DLL动态链接库时,需要确保两个程序之间能够正确地进行数据交互和方法调用。这通常涉及将C#代码编译为可以在PowerBuilder中使用的DLL,并处理类型转换、命名约定等细节问题以保证兼容性。 具体步骤可能包括: 1. 创建并配置好C#项目; 2. 将需要的功能封装到类或静态方法中; 3. 使用适当的特性(如`ComVisible(true)`)使这些功能可以被非.NET环境访问; 4. 通过注册表或者PowerBuilder的DLL管理工具来加载和引用生成的动态链接库文件(.dll)。 需要注意的是,由于PB与C#在内存管理和数据类型处理上的差异,可能需要编写一些辅助函数来进行必要的转换。此外,在调用过程中要特别注意异常处理机制的不同以及错误信息传递的方式,以确保系统的稳定性和安全性。
  • 使C#DLLC++
    优质
    本项目采用C#开发了一个动态链接库(DLL),旨在为C++应用程序提供功能扩展和代码复用,实现了跨语言编程的有效通信。 用C#编写COM接口供C++调用,并附上程序源码以供参考。大家可以借此举一反三。
  • 使DelphiC++DLL
    优质
    本示例演示了如何在Delphi应用程序中加载和调用由C++编写的动态链接库(DLL)中的函数,包括导出函数声明、接口定义及代码实现。 本实例介绍如何使用Delphi调用由C++编写的dll的一个简单示例。
  • PB使MD5加密和DES加解密DLL及PB9
    优质
    本资源提供了一个在PowerBuilder(PB)环境中使用的动态链接库(DLL),实现了MD5加密与DES加解密功能,并附带了PB9调用实例,便于开发者集成安全数据处理功能。 PB提供了MD5加密和DES加解密的DLL,并附带了PowerBuilder 9.0中的调用示例。
  • 使C++DLL文件以易语言
    优质
    本教程详细介绍如何利用C++创建动态链接库(DLL)以及如何在易语言环境中成功调用这些功能,适用于需要跨编程环境集成的开发者。 使用C++编写DLL文件并供易语言调用涉及三个关键文件:头文件(dll_demo.h)、源代码文件(dll_demo.cpp)以及定义文件(dll_demo.def)。下面将详细介绍每个部分的内容。 **头文件 (dll_demo.h)** 该文件用于声明函数和变量。以下是其内容: ```c #ifndef _DLL_DEMO_H_ #define _DLL_DEMO_H_ #ifdef DLLDEMO_EXPORTS #define DLL_DEMO extern C __declspec(dllexport) #else #define DLL_DEMO extern C __declspec(dllimport) #endif DLL_DEMO int __stdcall Add(int a, int b); #endif ``` 在头文件中,我们通过宏定义区分导出和导入的函数。`DLLDEMO_EXPORTS` 宏确保当编译为动态链接库时正确设置导出属性(使用 `__declspec(dllexport)`),而在其他情况下则用于导入(使用 `__declspec(dllimport)`)。这里提供的示例中,我们声明了一个名为 `Add` 的函数,它接受两个整数参数,并返回它们的和。该函数采用标准调用约定 (`stdcall`)。 **源文件 (dll_demo.cpp)** 此文件包含头文件并实现其中定义的功能: ```c #define DLLDEMO_EXPORTS #include dll_demo.h int __stdcall Add(int a, int b) { return (a + b); } ``` 这里,我们简单地实现了 `Add` 函数以返回两个整数的和。 **定义文件 (dll_demo.def)** 该文件用于解决使用标准调用约定后函数名被修改的问题。以下是其内容: ```def LIBRARY dll_demo EXPORTS Add @1 ``` 在定义文件中,我们通过 `EXPORTS` 指令指定导出的函数名称和序号。 **编译与链接** 为了生成DLL文件,在Visual Studio 2013或更高版本中需要手动添加定义文件。具体操作是在项目属性中选择“链接器”选项卡,并在该面板下的输入部分设置模块定义文件(即dll_demo.def)的路径。 通过以上步骤,我们成功地创建了一个可以被易语言调用的C++ DLL文件。