Web services 如何在Delphi中为soap rtl应用补丁?
我已经更正了soap单元中的一个错误(Web services 如何在Delphi中为soap rtl应用补丁?,web-services,delphi,soap,delphi-xe3,bpl,Web Services,Delphi,Soap,Delphi Xe3,Bpl,我已经更正了soap单元中的一个错误(soap.OPToSOAPDomConv.pas),但我不知道如何重建soaprtl170.bpl(Delphi XE3) 我需要这样做,因为我需要在ide中安装一个需要bpl的组件,当在表单中删除它并激活它时,它会在设计模式下进行webservice调用 在设计模式中,它似乎使用了soaprtl,而不是我修改的Soap.OPToSOAPDomConv.dcu。 在运行时,它可以工作,因为我没有使用运行时包,并且我的dcu优先 任何关于如何重新编译bpl的帮
soap.OPToSOAPDomConv.pas
),但我不知道如何重建soaprtl170.bpl
(Delphi XE3)
我需要这样做,因为我需要在ide中安装一个需要bpl的组件,当在表单中删除它并激活它时,它会在设计模式下进行webservice调用
在设计模式中,它似乎使用了soaprtl,而不是我修改的Soap.OPToSOAPDomConv.dcu
。
在运行时,它可以工作,因为我没有使用运行时包,并且我的dcu优先
任何关于如何重新编译bpl的帮助都将不胜感激
我想在该文件中应用的具体补丁如下:
function TOPToSoapDomConvert.InvContextToMsg(const IntfMD: TIntfMetaData; MethNum: Integer;
Con: TInvContext; Headers: THeaderList): TStream;
...
(line 1446)
if not IsBareLiteral then
MethNode := BodyNode.AddChild(ExtMethName, SoapMethNS,true)
else
MethNode := BodyNode;
...
修补程序包括将true添加到addChild。您需要打开
dpk
,它是bpl
文件的源,以便重新编译bpl。不确定事情是否已经从D2007到Delphi-Xe3的方式发生了变化。不确定您是否能够轻松做到这一点。在运行时用代码钩子修补会更容易。@Johan,问题是soaprtl170的dpk没有提供源代码…@DavidHeffernan,我不知道怎么做。你有什么消息来源可以让我知道那个钩住的过程吗?谢谢您是否可以扩展该问题以显示您需要应用的修复