可能我问的问题都比较难,看的人多,回答的人少。再问一个有难度的!?如何在SOAP服务器中维持一个全局变量(2分)

  • 主题发起人 主题发起人 linxiaovoc
  • 开始时间 开始时间
L

linxiaovoc

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说我在SOAP中动态装载一个动态链接库,
如以下语句:
function init():integer ;
var
Myhandle:integer;
begin
myhandle := loadlibrary('mypath/test.so');
if myhandle <> 0 then
Result := 1 ;
else
result := 0 ;
end;
另外一个函数:
function print(buf:pchar):integer
begin
@printupper := GetProcAddress(myhandle,'printUpper');
//注意,此时myhandle是一个全局量
if @printUpper <> nil then
begin
printupper('aaaa');
result := 1;
end
else
result:= -1 ;
end
现在有一个客户端程序,两个按钮事件,一个按钮执服务器的init函数,另一个执行print函数
当执行了init函数后,服务器端的myhandle得到一个大于0的整型数,而另一个按钮执行print函数后
myhandle仍然为0,说明此时myhandle没有维持下来。
我个人的理解是SOAP服务器是一个CGI程序,他是由WEB服务器调用的,客户方发出请求,通过WEB服务器再
向他发请求,因此他将产生不同的运行实例。
那究竟要怎么维持下myhandle的值呢。?
 
为什么没人回答?你也太没诚意了吗,才1分2分打发叫化子呢?高手是不会说啦,
呵呵,好在我不是高手,说说没所谓
首先你必须采用ISAPI/NSAPI DLL模式的应用才行
第二你的MyHandle变量必须放在WebModule单元
就可以在多个多次连接中保持这个变量的值。我试过啦
 
我想您说的有道理,但是我现在要做的SOAP服务器是运行在LINUX下的,只有两种可以设计,
1是CGI,2是APACHE DYNAMIC SHARED OBJECT,我想过用DSO,但不知道在APACHE下如何配置,
这是很麻烦的,其实我现在已经放弃用SOAP了,我用CORBA做不同平台下的远程调用。
另外我不是想打发叫花子,因为我没有分。
 
后退
顶部