Grid++Report报表,传统的发送方式,除了发布程序以外外,还要为客户注册DLL。由于,多数客户已经使用Win10,Win10在注册Dll时,对权限要求比较严,客户自己注册比较困难,使得软件发布,还要上门为客户注册Grid++Report报表的DLL,很不方便。

自Grid++Report报表6.2.2.2版本开始,支持C/S报表免注册DLL报表开发,很方便。同时,也可避免不同版本之间,不兼容的错误,以及不同版本之间的差异。

一、传统的Dll注册

需要在安装过程中对 Grid++Report 的两个发布 DLL 进行注册,必须用 regsvr32.exe 程序进行注册操作,在命令行窗口中,执行 regsvr32 命令。

语法如下:

regsvr32 "%FilePath%\gregn6.dll"

regsvr32 "%FilePath%\grdes6.dll"

二、6.2.2.2版本后续,免注册DLL 报表开发

1、机制就是通过建立一个与执行EXE文件同名的清单文件(后缀名.manifest),实现Grid++Report发布DLL文件的COM免注册。其原理是,在清单文件中包含有COM组件相关的信息,由它来代替注册表的角色,来指定COM文件路径、COM版本等信息。从而实现直接复制文件发布用Grid++Report开发的软件。

2、免DLL注册发布的优点

(1)发布软件时不需写入系统注册表,安装时不需要管理员权限。

(2)如果一台电脑用了不同版本的Grid++Report,不会发生版本冲突,即避免DLL Hell问题。

(3)实现绿色发布软件,无需制作安装程序(或用 regsvr32 命令注册dll),通过简单的文件复制即可发布软件。

三、有关程序的目录的概念

1、Project directory:例如,D:\MyPro\A1    (项目源文件目录)

2、Output directory:例如,D:\Program     (EXE输出目录)

注意:通常二个目录相同。

3、Project Name项目名:例如,HLserver,生成的EXE文件名:例如,HLserver.exe

四、建立清单文件XXXX.exe.manifest文件

1、将清单文件“C:\Grid++Report 6\manifest\YourX86.exe.manifest”复制到程序输出的目录Output directory目录中,例如:D:\Program

2、将YourX86.exe.manifest,改名:HLserver.exe.manifest

3、使用纯文本编辑器,打开HLserver.exe.manifest文件:

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity name="YourX86.exe" version="1.0.0.0" type="win32" /><file name="grdes6.dll"><typelib tlbid="{c5a16330-a084-48c9-bc0f-0d0b37a14123}" version="6.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /><comClass clsid="{6edd80cb-9f08-4c71-b406-479e5cb80fce}" threadingModel="Apartment" tlbid="{c5a16330-a084-48c9-bc0f-0d0b37a14123}" progid="grdes.GRDesigner.6" description="Grid++Report Designer 6" /></file><file name="gregn6.dll"><typelib tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" version="6.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /><comClass clsid="{f9364159-6aed-4f9c-8baf-d7c7ed6160a8}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GridppReport.6" description="GridppReport Class" /><comClass clsid="{1b5ea181-a38d-4f42-88b2-6af74cf6d6c0}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRDisplayViewer.6" description="Grid++Report DisplayViewer 6" /><comClass clsid="{7fd5dc62-ded0-4138-9c48-55f0a0fe7b66}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRDisplayViewerProps.6" description="GRDisplayViewerProps Class" /><comClass clsid="{44cbb5de-5afb-4c3d-8f3f-0f70ca5372ad}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRPrintViewer.6" description="Grid++Report PrintViewer 6" /><comClass clsid="{6ca58cb2-2ad1-4ad0-b3cc-5f5c000bbdee}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRPrintViewerProps.6" description="GRPrintViewerProps Class" /></file>
</assembly>

将文本第三行:“YourX86.exe”,改为你的项目EXE文件名“HLserver.exe”:

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity name="HLServer.exe" version="1.0.0.0" type="win32" /><file name="grdes6.dll"><typelib tlbid="{c5a16330-a084-48c9-bc0f-0d0b37a14123}" version="6.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /><comClass clsid="{6edd80cb-9f08-4c71-b406-479e5cb80fce}" threadingModel="Apartment" tlbid="{c5a16330-a084-48c9-bc0f-0d0b37a14123}" progid="grdes.GRDesigner.6" description="Grid++Report Designer 6" /></file><file name="gregn6.dll"><typelib tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" version="6.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /><comClass clsid="{f9364159-6aed-4f9c-8baf-d7c7ed6160a8}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GridppReport.6" description="GridppReport Class" /><comClass clsid="{1b5ea181-a38d-4f42-88b2-6af74cf6d6c0}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRDisplayViewer.6" description="Grid++Report DisplayViewer 6" /><comClass clsid="{7fd5dc62-ded0-4138-9c48-55f0a0fe7b66}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRDisplayViewerProps.6" description="GRDisplayViewerProps Class" /><comClass clsid="{44cbb5de-5afb-4c3d-8f3f-0f70ca5372ad}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRPrintViewer.6" description="Grid++Report PrintViewer 6" /><comClass clsid="{6ca58cb2-2ad1-4ad0-b3cc-5f5c000bbdee}" threadingModel="Apartment" tlbid="{4018f953-1bfe-441e-8a04-dc8ba1ff060e}" progid="gregn.GRPrintViewerProps.6" description="GRPrintViewerProps Class" /></file>
</assembly>

修改后,保存文件。

4、将Grid++Report 6新版本的二个DLL文件,复制进Output directory:D:\Program目录中

5、打开Delphi对项目进行编译,在此项环境下的编程后,程序将读取通过将读取HLserver.exe.manifest文件中,标明的Grid++Report 6注册信息。

6、验证程序,可以使用

(1)取消注册,建立一个DelReg.bat文件,内容如下

regsvr32 /u "C:\Grid++Report 6\gregn6.dll"
regsvr32 /u "C:\Grid++Report 6\grdes6.dll"

以管理员身份执行。

7、执行你的项目程序,测试打印成功。

你可以发布程序了。通过向服务器远程上传、客户动态下载后,正常使用,特方便。

说明:发布时,一定要将清单文件HLserver.exe.manifest,同版本的gregn6.dll、grdes6.dl文件和项目EXE文件,四个文件一并发布。

其它文章:Windows COM 免注册 manifest 清单文件_

锐浪报表 Grid++Report 免注册DLL C/S报表开发(二)清单文件manifest分析

锐浪报表 Grid++Report 免注册DLL C/S报表开发(一)相关推荐

  1. 锐浪html5,Grid Report

    Grid++Report是一款功能强大的报表设计器,采用VC+COM+ATL+WTL技术,包含报表引擎对象.报表查询显示器.报表打印查看器.报表设计器四大功能组件,可以制作和打印各种复杂的表格,为从事 ...

  2. .NET 程序下锐浪报表 (Grid++ Report) 的绿色发布指南

    在锐浪报表官方为 CSharp 编写的开发文档:"在C#与VB.NET中开始使用说明.txt" 中,关于发布项目是这么描述的: ★发布你的项目,用VS.NET制作安装程序: 1.先 ...

  3. ​锐浪报表 Grid++Report HTML格式文本,win10下划线变删除线​

    锐浪报表 Grid++Report  HTML格式文本,在win10下划线变删除线 锐浪报表 Grid++Report  打印合同,一真使用HTML格式文本,已经好几年了.今天一台华为win10手提电 ...

  4. 锐浪报表 Grid++Report 导出其它格式文件

    锐浪报表 Grid++Report 导出其它格式文件 Grid++Report控件设计的报表,不仅可以打印,还可以导出8种格式的报表文件. 在Grid++Report的打印浏览中,有指定导出文件的对话 ...

  5. oracle查看所有报表,Oracle Report Viewer 以及怎么查看Oracle 报表

    Oracle Report Viewer 以及如何查看Oracle 报表 Oracle Report Viewer 以及如何查看Oracle 报表 今天领导提出了个问题,如何查看Oracle 报表输出 ...

  6. 横向合计代码 锐浪报表_锐浪报表/Grid++Report/V5.8/6.0非常好注册正式版

    可选:C/S或B/S一个 简介: Grid++Report 是一款高性能高效率的报表开发工具,既可开发桌面软件的报表与打印系统,也可开发WEB(B/S)软件的报表与打印系统.提供一个具有超强数据展现功 ...

  7. 锐浪报表(Grid++Report)实现动态图片链接

    使用锐浪报表配置打印模板的时候,需要链接到网络图片,拖出图片控件. 之后在初始化加载脚本里面填上下面的代码 var paraImgPath = Report.ParameterByName(" ...

  8. 锐浪报表 Grid++Report 部件框 (长文字的) 跨页断句

    "跨页断句"实现长篇幅文字跨页显示,满足参数设置: 1.必须将部件框的"可伸展"属性设为"是". 2.部件框框所在的报表节的"可伸 ...

  9. Windows COM 免注册 manifest 清单文件

    一.原理 XP以上的操作系统支持COM免注册技术,操作系统在加载EXE时会自动扫描是否包含配套的manifest信息,若有则读取manifest内容加载组件,否则读取注册表. manifest描述了E ...

最新文章

  1. 集成、知识蒸馏和自蒸馏有区别?
  2. 姚期智:这是一个“前所未有”的金融科技与计算机科学的黄金时代
  3. vc mysql utf8_C/C++ 连接 MySQL (VC 版)
  4. iar 堆栈设置_IAR MSP430设置合理堆栈大小(the stack pointer for stack is outside the stack range)...
  5. java criteria and_criteria用法
  6. Linux进程实践(3) --进程终止与exec函数族
  7. poj1562-DFS
  8. JS实践与写博客-序
  9. 论文笔记_S2D.48_2017-IEEE RAL_单视图和多视图深度融合
  10. java实现复数之间加减乘运算_用java实现复数的加减乘除运算(改进第1次)
  11. 急聘:IDC机房建设相关职位
  12. win7虚拟机无法读取U盘或密钥常见解决方法
  13. 颜色转换助手RGB888-565
  14. HDF5 header version 1.10.4与HDF5 library 1.10.5冲突解决办法记录
  15. Cisco Packet Tracer子网划分,RIP动态路由,DHCP实验
  16. 关于显卡PCIE3.0 X16 X8 X4 X1速度的测试
  17. POJ 1417 True Liars (种类并查集+DP)
  18. 如何防止自己的云服务器被暴力破解密码(限制暴力破解并发送邮件到自己的邮箱)
  19. 临汾第一站软件工作室网站建成运行……
  20. BEVFormerV2:Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective Supervisi

热门文章

  1. Verilog数字系统设计教程[第4版]夏宇闻——第17章RISC_CPU代码
  2. 2W 字详解设计模式,干货十足
  3. 从Windows 10共享文件夹给Docker虚拟机中的Docker的神奇bug
  4. 使用深度学习模型对摄影彩色图像进行去噪
  5. 计算机视觉——车道线(路沿)检测
  6. go获取get请求参数
  7. 清风数学建模代码笔记1(正课
  8. 定向模糊测试工具Beacon基本用法
  9. 小米手机红米note9 pro连接android studio真机调试
  10. 解决 Ajax:Ensure CORS response header values are valid 跨域问题