.Net下如何跨语言调用Delphi写的报表引擎

我去年上半年之前一直使用的是Delphi,公司在这上面也积累了很多公共资源。在06年9月实现了一个 功能强大的报表引擎,公司到现在基本每个项目组都在使用它做报表。现在在.Net下,使用 OpenExpressApp,暂时也没有足够精力去重新开发一个报表引擎(OpenReport),所以就想到先重用以前 的报表引擎。

下面就介绍一下如何在WPF中使用Delphi下的功能。

封装Delphi引擎为一个OCX控件

之前的报表引擎是基于Delphi下的,在跨语言应用下,最容易想到的就是使用ActiveX,于是使用 Delphi做了一个ActiveXForm,封装了一个OCX控件并注册,名称为【ReportFram.ocx】,这里就不详细介 绍具体生成过程了。

在.Net中使用

.Net下的控件都是从Control继承下来的,要想使用OCX控件,就需要在OCX和Control之间适配一下。 Delphi封装的OCX本身并不知道如何在.Net下使用,我们可以通过以下步骤,由VS给我们自动生成一个适 配程序集。

在Toolbox中添加一项

时间: 2024-09-30 15:15:23

.Net下如何跨语言调用Delphi写的报表引擎的相关文章

解析android framework下利用app_process来调用java写的命令及示例

解析android framework下利用app_process来调用java写的命令及示例          在android SDK的framework/base/cmds目录下了,有不少目录,这些目的最终都是build出一个bin文件,再存放到/system/bin目录下,对于C/CPP写的命令,我们还是比较好理解的,都有一个main函数作为入口,但是在cmds目录下还有一些原生代码是java的,比如input.settings,那么这种类型的命令是怎么实现的呢?       笔者研习了

Oralce 调用Delphi写DLL去访问C# WebService的问题

web|访问|问题 我想从Oracle的存储过程通过一个外部dll(Delphi编写)去访问C#写的WebService时,出现了"尚未调用 CoInitialize"不知道是怎么回事,望各位指点一二.1.我在Oracle里写了一个函数AddNumber如下:CREATE OR REPLACE FUNCTION "MY"."ADD" (a in BINARY_INTEGER,b in BINARY_INTEGER) RETURN BINARY_I

Java跨语言调用实现方案

Java 跨语言实现方案 背景: 在大型分布式 java 应用中,为了方便开发者,通常底层的 rpc 框架都会做一些调用的封装,让应用层开发人员在开发服务的时候只用编写简单的 pojo 对象就可以了,如流行的 spring remoting , jboss remoting 等等,都有这样的效果. 随着业务的需要,可能上层应用希望采用非 java 技术,如 php , ruby on rails ,而由于 java gc 和内存模型的限制,可能有的底层服务又需要采用更高性能和更加灵活的技术,如果

java调用delphi写的DLL报错误签名错

问题描述 如题,但并不是每次都报错,只是偶尔.函数参数我只有两个,都是字符串类型:Java这边我定义为string类型,delphi的dll里我定义为widestring类型错误显示为:错误签名AppName:javaw.exeAppVer:6.0.160.1ModName:adsloc32.dllModVer:5.60.0.0Offset:00030b00我写的delphidll里面调用了adsloc32.dll.补充:我用的开发工具是eclipse,delphi3写的DLL. 解决方案 解决

C#调用Delphi写的dll的问题。

问题描述 有这样一个Delphi原型接口.声明如下TArrayOfByte=arrayofByte;functionGetTemplateFromFile(imgPath:PAnsiChar;varATemplate:TArrayOfByte):Integer;stdcall;ATemplate这个参数是一组Byte数组,但这数组的大小是在接口即GetTemplateFromFile函数里分配的.通常情况下返回4096个字节.但我引用C#调用时,发现只返回一个字节.C#声明方式如下.[DllIm

IE下iframe跨域调用session/cookie失效解决办法

在frameset里面,也就是里面的frame是来自第三方站点(不同IP或不同域名),那么默认情况下IE会自动禁用这些站点的cookie,也就是在请求某url时在HTTP header里不发送它们的cookie,包括session的cookie.注意,这些站点在response里面设置的cookie还是会被发送到浏览器的. 在用户浏览a.php时 A.com写入的为第一方Cookie,其嵌入的iframe 指向b.php.这时B.com写入的就为第三方Cookie了,所以它是被IE当在了大门外.

ASP.NET MVC中EasyUI的datagrid跨域调用实现代码_jquery

最近项目中需要跨域调用其他项目的数据,其他项目也是使用的EasyUI的datagrid组件,开始以为直接在datagrid的url属性定义为其他项目的url地址即可,可是测试下发现的确是返回了json数据但是json数据提示"invalid label" 错误,网上搜索了下错误解决办法,参考 "JavaScript处理Json的invalid label错误解决办法"的方法利用datagrid的loadData方法加载并转换了json还是提示上述错误,感觉原因不在格

在VC 6.0下如何调用Delphi开发的进程内COM

源代码包中共有两个zip文件,其中DelphiCallVCCOM.zip为Delphi调用VC的COM组件,VCCallDelphiCOM.zip为VC调用Delphi的COM组件 因为本人的语言水平很差,考大学时150的总分,我考了个60分.外语也是,初中及格过一次,会考及格过一次.其它的时间好像从没有及格过.所以我不写文章,因我一百字的文章给我写,至少要出八九个错别字.哈哈-.真是个马大哈.你别说我还真的姓马.所以下面的文章中有错误之处,请你老人家多多理解.谁叫你看我的文章了的.下面就谈正事

急求大神指点下我在delphi写的这个数据库双表查询插入的问题

问题描述 急求大神指点下我在delphi写的这个数据库双表查询插入的问题 我要实现的是A任务表,B任务执行状态两表关联查询后,得到A表中能执行的数据,查询出来的结果确实是A表中能执行任务的数据, 但是在向B表中插入这条A表数据执行状态的时候,插入B表中的数据ID不是之前查询A表出来数据的ID, 下面附上代码,求大大们指点 //定义了任务运行表插入数据操作过程 procedure TForm1.InsertData(exeid,status,starttime,endtime,result : s