张志峰的博客

水滴石川,积少成多。

导航

2013年8月13日

摘要: Delphi stdCall意义1、此代码所在单元是个库,可被别的应用来调用,像SysUtils、DateUtils、Classes等单元一样,都是为将来的无穷无尽的应用提供服务的。2、此代码还可能出现在library的工程中,即动态链接库(.dll文件),最后会有export HInitRSCCTL的语句,这样,别的应用程序就能动态链接该库,并调用该函数。相比而言,1中所述为静态链接。stdcall的指示符表示参数在堆栈上传递的顺序,当然了,也就两种,从左到右和从右到左。C语言和pascall刚好相反 阅读全文

posted @ 2013-08-13 17:52 ╰★张志峰★╮ 阅读(2729) 评论(0) 推荐(0)

摘要: WEB APP DEBUGGER是怎么使用的最近在写一个WEBSERVICE的程序,怎么设置使用,WEBAPPDEBUGGER这个工具呢,让别人在调用我的WEBSERVICE的时候我可以调试的?谢谢------解决方案--------------------------------------------------------WEB APP DEBUGGER是用来调试可执行文件的, 不能调试ISAPI/NSAPI 一般用法是先作成exe,调试完成后再改造成dll ------解决方案------------------------------------------------------- 阅读全文

posted @ 2013-08-13 13:16 ╰★张志峰★╮ 阅读(819) 评论(0) 推荐(0)

摘要: 用delphi的THTTPRIO控件调用了c#写的webservice。下面是我调试时遇到的一些问题:1,导入wsdl文件:file--new----other----wenservice---WSDLimporter---输入wsdl地址:如下:http://10.0.1.128:7777/ShineMediaPublish/WebService/WebServiceCall.asmx?wsdl注意末尾的:'?wsdl'不能少。要不可能会说找不到。2,设置THTTPRIO控件的属性:后来赋给URL属性,就不报错了。3,传递参数是web服务端总为空:在导入的接口单元的声明部分添 阅读全文

posted @ 2013-08-13 13:13 ╰★张志峰★╮ 阅读(2399) 评论(0) 推荐(0)

摘要: 一编写服务程序第一步:File----->New----->Other------>WebServices----->Soap Server Application选择ISAPI/NSAPI Dynamic Link Library然后确定。生成一个框架。后面的大部分原代码都需要自己手工添加第二步:定义一个接口单元。先通过向导生成一个空的单元文件,然后在此单元中实现基本的接口(Iinvokable)和定义以后客户端程序可以调用的方法,原代码如下:unit unit1;interfaceuses InvokeRegistry;//基本的结构和方法的定义都在此单元中,必须引 阅读全文

posted @ 2013-08-13 13:12 ╰★张志峰★╮ 阅读(872) 评论(0) 推荐(0)

摘要: NEW一个WEBAPP,选WEBAPPDEBUGGER,输一个COCLASSNAME,比如叫HELLO保存为工程比如叫TEST,UNIT2比如改叫WEBMOD,UNIT1以后没用了,所以还叫UNIT1好了。然后像以前一样写上你的东东。然后放上断点,RUN(注意,国为这是一个EXE,所以尽管RUN)启动WEBAPPDEBUGGER,START之。点那个链接:http://localhost:1024/ServerInfo.ServerInfo/IE出来一个页面,在面选中:Test.Hello,然后GO就调用你的WEBAPP的默认ACTION了,如果你在这个ACTION里放了断点,这时它应该会停在 阅读全文

posted @ 2013-08-13 10:55 ╰★张志峰★╮ 阅读(646) 评论(0) 推荐(0)

摘要: ISAPI(InternetServerApplicationProgrammingInterface)作为一种可用来替代CGI的方法,是由微软和Process软件公司联合提出的Web服务器上的API标准。ISAPI与Web服务器结合紧密,功能强大,能够获得大量的信息,因此利用ISAPI可以开发出灵活高效的Web服务器增强程序。由于ISAPI程序与Web服务器的关系,使得ISAPI接口在安全方面有一定的研究价值。本文主要讨论ISAPI在IIS和VC++6.0中的实现。一、ISAPI接口和CGI接口的不同。ISAPI程序和CGI程序完成类似的功能,但是实现方法不同。1、ISAPI程序以DLL形式 阅读全文

posted @ 2013-08-13 10:39 ╰★张志峰★╮ 阅读(627) 评论(0) 推荐(0)

摘要: 因为dll文件已驻留内存,可用intrabob进行调试,也可用PWS进行调试,不过要换文件。 IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/WinCGI/ISAPI程序,它可以代替PWS/IIS等WWW服务器软件, 调试本地的CGI/WinCGI/ISAPI程序,其原理是模拟PWS/IIS接受WWW请求, 并根据您的设置将类似于“http://www.123.com/testisapi.dll” 的远程URL映射到本地文件,如“d:\intrabob\demo\TestISAPI.dll”。 IntraBob目前的版本为5.0,支持调试De.. 阅读全文

posted @ 2013-08-13 10:34 ╰★张志峰★╮ 阅读(913) 评论(0) 推荐(0)

摘要: 今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性。 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQuery。用Button添加了一个事件,用来取消对checkbox的操作:ADOQuery.CancelBatch();可是只能取消最后一步的操作。检查了很长时间才发现在DBGridEh的DataSource的Dataset 下的LockType的属性设置问题,我设置成了:ItOptimistic 后来将此属性改为:ltBatchOptimistic 就可以了在网上查了一下,有如下说法:1.ADOQue 阅读全文

posted @ 2013-08-13 10:32 ╰★张志峰★╮ 阅读(4540) 评论(0) 推荐(0)

摘要: 1.新建一个web工程,请选中最下面一项:Web App Debugger executable,Coclass name我们设为demo1;2.在弹出的WebModule2中右击,在弹出的Action编辑框中新建一个webaction,选中,设置Default属性为True,在其onaction事件中编写如下代码,输出一个仅显示‘hello,dephi!’的html页;3.请先运行一遍,向Web服务器注册;4.设置断点,运行;5.点击Tools->Web App Debugger;6.在Web App Debugger上点击‘Start’;7.此时‘Start’后面的‘Default 阅读全文

posted @ 2013-08-13 10:29 ╰★张志峰★╮ 阅读(1230) 评论(0) 推荐(0)

摘要: 如今 Web Service 已越来越火了,在DotNet已开发的Web Service中,Delphi 7如何方便的调用DotNet写的Web Service呢?方法有两种,一种是在Delphi 7中WSDLImp工具将DotNet写的Web Service转化为Interface 单元文件,另一种方法是用MS 提供的 Microsoft Soap Toolkit(MSST) 工具。下面是用WSDLImp工具调用C# 写一个简单的 Web Service:启动 VS.Net工具,在C#项目中,选择 ASP.Net Web服务,在代码中写入[WebMethod]public double ad 阅读全文

posted @ 2013-08-13 10:25 ╰★张志峰★╮ 阅读(455) 评论(0) 推荐(0)

摘要: webservice Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。简介 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以. 阅读全文

posted @ 2013-08-13 10:24 ╰★张志峰★╮ 阅读(583) 评论(0) 推荐(0)

摘要: Web Service和ISAPI的区别与联系 1、Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。Web Service是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。可将Web服务视作Web上的组件编程。所以说Web Service是一种架构,是一种协议框架。2、而ISAPI是ISAPI 服务器扩展是 阅读全文

posted @ 2013-08-13 10:23 ╰★张志峰★╮ 阅读(663) 评论(0) 推荐(0)

摘要: Web Service和ISAPI的区别与联系 1、Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。Web Service是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。可将Web服务视作Web上的组件编程。所以说Web Service是一种架构,是一种协议框架。2、而ISAPI是ISAPI 服务器扩展是 阅读全文

posted @ 2013-08-13 10:22 ╰★张志峰★╮ 阅读(849) 评论(0) 推荐(0)

摘要: Delphi 6 Web Services初步评估这是我刚到现在公司的时候(2001年8月份)所作的一份测试报告,现公布出来,希望能对大家有所帮助。因为当时d6刚刚发行,Web Service方面还存在一些问题,当前的update 1 for D6已经发布,主要就针对Web Service做了大量的修改,已经能与MS相关的Web Service兼容了。可能下面文章内提到的部分内容在Update1有所变动,在此说明!2000年6月22日,整个IT行业期盼着一个令人向往的新时代,因为今天美国微软公司正式对外宣布了.Net战略,并且确定每年为这个新的战略投入40亿美元的研发费用。.Net的思想彻底地 阅读全文

posted @ 2013-08-13 10:21 ╰★张志峰★╮ 阅读(289) 评论(0) 推荐(0)

摘要: Delphi 6 Web Services初步评估之二(转) ★ 测试环境:CPU:PIII 550内存: 256MBOS: Windows2000 Server + SP2Web Server:IIS 5.0 + SP3开发环境:Borland Delphi 6.0 EnterpriseMicrosoft Visual Studio 7.0 Beta 2Microsoft SOAP TOOLKIT 2.0★ 基本测试过程:Web Services通过接口方法调用返回值来获取调用结果,因此测试程序通过调用不同类型返回值的接口方法来作为测试方向,分为以下四种:字符串类型返回值,对象类型返回值,对 阅读全文

posted @ 2013-08-13 10:20 ╰★张志峰★╮ 阅读(317) 评论(0) 推荐(0)

摘要: Delphi 6 Web Services初步评估之三(转) Delphi 6 Web Services初步评估之三(转)★ 测试总体印象:在整个测试中,对Delphi 6创建的Web Services有以下几个印象:1、 客户端应用程序连接服务器端Web Service的时候,第一次调用很慢,而以后的调用明显加快。图五显示了调用各个接口第一次和第二次的传输速率(每秒钟传输千字节数KB/S)。由此可以看出,第一次的方法调用非常耗时,可能达到第二次调用的8倍,因此可以确定,第一次调用接口的时候,大量的操作事件耗费在连接的建立上面。一旦连接建立,以后的调用速度会大大加快。(图五)从图五中,也能明显 阅读全文

posted @ 2013-08-13 10:19 ╰★张志峰★╮ 阅读(317) 评论(0) 推荐(0)

摘要: 用Web App Debugger简单调试ISAPI 以isapi为例: 1、新建一个project,用isapi/nsapi; 2、remove这个project中所有的unit; 3、加进你用Web App Debugger调试出来的工程的unit ; (千万注意:不要把有form的unit加进去,不然不能运行) 4、建一个虚拟目录,指向你的工程所在的目录; 5、这样你在url中输入:http://你的虚拟目录/工程名.dll。 这是在你自己机上这样设置,如果你要发布到其他没有装delphi的机上就 要做更多的事了! 阅读全文

posted @ 2013-08-13 10:18 ╰★张志峰★╮ 阅读(426) 评论(0) 推荐(0)

摘要: socket()系统调用,带有三个参数: 1、参数domain指明通信域,如PF_UNIX(unix域),PF_INET(IPv4), PF_INET6(IPv6)等 2、type指明通信类型,最常用的如SOCK_STREAM(面向连接可靠方式, 比如TCP)、SOCK_DGRAM(非面向连接的非可靠方式,比如UDP)等。 3、参数protocol指定需要使用的协议。虽然可以对同一个协议 家族(protocol family)(或者说通信域(domain))指定不同的协议 参数,但是通常只有一个。对于TCP参数可指定为IPPROTO_T... 阅读全文

posted @ 2013-08-13 10:12 ╰★张志峰★╮ 阅读(2819) 评论(0) 推荐(0)

摘要: 用Delphi实现WinSocket高级应用默认分类 2009-12-19 16:48 阅读6评论0 字号: 大大 中中 小小 Socket通信在Windows 中是排队的形式由操作系统处理,而且接收方和发送方相互协同工作,否则就会造成数据丢失。因此,不能用类似于for 语句的循环来实现对多组数据的发送,更不能用循环语句来接收数据。比如,你可以用for 语句来实型若干文件的复制,这很普遍也很正常,但在 Socket编程以及大多数网络应用编程中都是行不通的,因为网络通信的基本方式是请求和应答。另外,和所有的通信编程一样,Socket编程也遵循数据分包传送这一基本规则。也就是说,在 Socket. 阅读全文

posted @ 2013-08-13 10:11 ╰★张志峰★╮ 阅读(702) 评论(0) 推荐(0)

摘要: delphi编写winsocket的流程1、在窗体创建的时候启用动态连接库(引用winsock) var aWSAData:TWSAData; if WSAStartup($0101,aWSAData)0 then begin MessageBox(Handle,'不能启动winsock动态链接库!','错误',MB_OK); Exit; end;2、然后启动监听线程Lthread:=TListenthread.CreateIt(9002);3、线程的构造函数constructor CreateIt(port:integer); //创建线程端口//监听线程的构 阅读全文

posted @ 2013-08-13 10:10 ╰★张志峰★╮ 阅读(2264) 评论(0) 推荐(0)