Delphi
文章平均质量分 55
horsefaced
这个作者很懒,什么都没留下…
展开
-
对于delphi7的接口不能强制转化的问题
今天在发现delphi里的接口是不能强制转化的, 比如如下代码:ITestInterface = interface(IUnknown)[{DE8E7E63-BD1B-4BD8-B59A-43F4B2B3A3DC}]procedure Chk;end;ITestInterface2 = interface(IUnknown)[{3B47B113-4664-4CCC-9A69-E378原创 2006-10-30 11:09:00 · 999 阅读 · 0 评论 -
如何修改文件版本号
修改文件版本号, 其实就是修改文件的资源. MSDN上没有明说如何修改文件的版本号的方法, 因为MS认为版本号应该是属于文件创建者的, 而不是如我们这样的文件所有者应该去修改的. 但资源总是资源, MS提供了如何修改资源的函数, 当然这些函数也可以修改版本号. 首先, 我们要找到文件的版本信息资源:mSize := GetFileVersionInfoSize(FileName.原创 2006-10-30 10:51:00 · 16663 阅读 · 7 评论 -
Delphi7中接口使用的注意事项与原因
Delphi为了与COM结合, 在PASCAL中加入了原来没有的接口元素, 变相的也扩展了对OO的支持.但也正因为只是为了与COM结合, Delphi中的接口实现实际上是不完整的. 因为没有垃圾收集功能, 在接口的实现中加入了COM的引用记数功能, 而这个功能的引入可以说是所有使用接口的麻烦的开始. 而看上去很优雅的很方便的自动进行引用记数加减的编译器代码又加重了这个麻烦, 让习惯于object原创 2006-10-30 09:55:00 · 1480 阅读 · 0 评论 -
如何得到控制台程序的输出
所有的程序都有标准输入,标准输出,标准错误这三个管道存在, 所以我们想得到控制台程序的输出,可以通过重定向这些管道来实现.首先, 我们要建立一个管道作为控制台程序的标准输出管道, 因为这个管道要转给控制台程序使用, 所以它应该是可以被控制台程序继承的句柄.ZeroMemory(@mSa, SizeOf(mSa));mSa.nLength := SizeOf(mSa);mSa.bInheri原创 2006-10-30 10:55:00 · 1641 阅读 · 0 评论 -
关于Delphi接口不能强制转化的补充说明
其实Delphi为了速度的原因,对于接口是采用直接解析接口在实例中的偏移来得到的.这个可以从下面的代码中看到:varmInt: ITestInterface;mInt2: ITestInterface2;beginmInt := TTestInterface2.Create;mInt2 := TTestInterface2.Create;end;其中 mInt := TTestIn原创 2006-10-30 11:11:00 · 970 阅读 · 0 评论 -
一次失败的WebService布署
今天真是失败啊,加班加到1点,而原因居然都是一些小细节。细节1。midas.dll 以前都是不能处理的异常向外抛出,这次居然自作主张,什么异常都不抛,看上去一片歌舞升平,结果,搞的上至经理,下至程序员都以为是自己的问题,把Web服务器搞坏, 一个个疯狂中。没想到抛出异常一看,原来是Delphi的midas.dll没更新至最新版本。唉,这里要说一下,如果WebService中有用到TClientD原创 2006-11-08 02:01:00 · 1890 阅读 · 1 评论 -
关于Delphi7写的WebService不能被AXIS1.4解析的解决方法
工作中遇到Delphi 7写的WebService,在JBuildX上能正确的解析成Java类,但在JBuild2006与Eclipse的WTP上解析出错的问题.经比较发现,Delphi7与JBuildX是使用axis1.0进行解析,在1.0至1.4的过程中,soap协议本身发生了变化,所以造成无法解析的问题.解决方法是从JBuilderX上找到axis所需的axis.jarcommons-dis原创 2006-12-22 16:37:00 · 1002 阅读 · 0 评论