李維 Soap 一書範例無法成功執行 |
缺席
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
各位大大, 最近買了李維大大的 Delphi 6 / Dylix 2 Soap/Web Service 程式設計篇一書,其中第一個範例程式就無法正確執行,不知原因何在。
這是一個最最最簡單的 Soap Server 程式,為 Web App Debugger 的型態,
執行一次後就在系統中登記有案,再啟動 Web App Debugger,並由另一個
Soap 的 Client 端程式呼叫這個 PWSDemo1.exe,全部設定都正確無誤,但
卻得到 Access Violation 的錯誤訊息 -----PWSDemo1.exe 執行中產生錯誤....
-----Access Violation 發生在甚麼甚麼位置... 從錯誤訊息中得知有正確呼叫到 PWSDemo1.exe,但這樣一個從書中照打的最
陽香範例程式,居然也會產生 Access Violation,我真的覺得很奇怪!當然,
最簡單的方法就是把書附光碟中的範例執行一次,但這又產生某某檔案是由舊
版本的甚麼甚麼編譯出來的錯誤,因為這本書出版時,Delphi 還是 6,而我
是用 Delphi 7。連編譯都不通過,更何況實際執行一次,無法查出錯誤的原因。不知道是不是 Delphi 6 和 7 處理 Soap 的手法有所不同? Server端共有五個部份
1. project 檔 (沒甚麼特別之處, 產生 PWSDemo1.exe)
2. 表單單元 (空白表單,沒甚麼特別之處)
3. Soap Application 自動產生的 Web module (沒甚麼特別之處)
----HTTPSoapDispatcher1
----HTTPSoapPascalInvoker1
----WSDLHTMLPublish1
4. FirstWSIntf 介面單元
5. FirstWSImpl 實作單元 以上 1,2,3,都沒有研究的需要,看最後兩個就好,內容很簡單,
請幫忙查看看錯在哪裡,謝謝。 ----------- FirstWSIntf 介面 ------------------
unit FirstWSIntf; interface uses Types, XSBuiltIns; type
IFirstWS = interface(IInvokable)
['{B2FBCFDB-6AC8-4B66-ACB9-E283FA0B8B06}']
function GetWSMsg : String; stdcall;
end; implementation uses InvokeRegistry; initialization InvRegistry.RegisterInterface(TypeInfo(IFirstWS)); end. ------------ FirstWSImpl 實作 -----------------
unit FirstWSImpl; interface uses FirstWSIntf, InvokeRegistry; type
TFirstWS = class(TInterfacedObject, IFirstWS)
public
function GetWSMsg : String; stdcall;
end; implementation { TFirstWS } function TFirstWS.GetWSMsg: String;
begin
Result := '太棒了, 這是我使用Delphi 6建立的第一個Web Servcie!!!';
// 就算把這個函式全部內容清空,照樣產生 Access Violation
end; procedure FirstWSFactory(out obj: TObject);
begin
obj := TFirstWS.Create;
end; initialization InvRegistry.RegisterInvokableClass(TFirstWS, FirstWSFactory); end.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |