以前做三层是用c++ builder ,现在想试试用delphi
我在应用服务器端定义了一个方法Method1
如下:
procedure Tmyrmdatasv.Method1;
beginend;我让它什么也不做,只是为了测试怎么从客户端掉用。客户端掉用的代码如下:procedure Tfmmytest.Button2Click(Sender: TObject);
var
apps:Imyrmdatasv;
begintry
apps := Imyrmdatasv( IDispatch( dm.socktconnect.AppServer ) );
apps.method1(); //////////////////////运行出错的光标停止在这行
except
on e:exception do
showmessage(e.Message);
end;
end;编译可以通过,运行时一点调用的那个button就出错:
access violation at address IED20049.read of address IED20049看样子好像是读写内存的错误,但是不知道为什么出这个错误,请各位高手帮帮忙看看。
我在应用服务器端定义了一个方法Method1
如下:
procedure Tmyrmdatasv.Method1;
beginend;我让它什么也不做,只是为了测试怎么从客户端掉用。客户端掉用的代码如下:procedure Tfmmytest.Button2Click(Sender: TObject);
var
apps:Imyrmdatasv;
begintry
apps := Imyrmdatasv( IDispatch( dm.socktconnect.AppServer ) );
apps.method1(); //////////////////////运行出错的光标停止在这行
except
on e:exception do
showmessage(e.Message);
end;
end;编译可以通过,运行时一点调用的那个button就出错:
access violation at address IED20049.read of address IED20049看样子好像是读写内存的错误,但是不知道为什么出这个错误,请各位高手帮帮忙看看。
解决方案 »
- *****delphi 2006 兼容delphi 7 的项目吗?****
- 请问高手一个问题,类似于傲游浏览器里面页面缩放的功能改如何实现
- 请postren(小虫)、sixgj(轰炸机)、 keiy() 进来接分,之前的帖子又未能给起分~~~~~~郁闷
- 怎样控制delphi messagebox的显示位置
- ListView显示的图标为什么都离左边界有那么一大段距离!分少了点,但偶已经没分了,还请大家多多包涵
- ADOQuery 如何 loadXMLfromStream
- 求目前能下的delphi2007下载地址,1.2G的那个版本。
- 输出存储过程时间参数问题
- ReportMachine7.0生成PDF,背景色是蓝色,怎么改?
- 求助!!如何学好Delphi!
- 紧急求助~~
- 怎样给一个图片的某个位置加上字。就像你看在5460.NET里,上传图片后就在图片中刻上了WWW.5460.NET
Method 'UserVerify' not supported by automation object
dm.dcomconnection .AppServer.method();
我想socketconnection 也是一样的
如果我改成stdcall就出错。
dm.socktconnect.AppServer.method1();
调用代码二:
var
apps:Imyrmdatasv;
beginapps := Imyrmdatasv( IDispatch( dm.socktconnect.AppServer ) );
apps.method1();两种写法有什么区别吗?
我写第一种方法时,appserver后面按“点“后不会 自动出来method1,
而第二种写法apps按“点“后会 出来method1
dm.socktconnect.AppServer.method1();
调用代码二:
var
apps:Imyrmdatasv;
beginapps := Imyrmdatasv( IDispatch( dm.socktconnect.AppServer ) );
apps.method1();两种写法有什么区别吗?
我写第一种方法时,appserver后面按“点“后不会 自动出来method1,
而第二种写法apps按“点“后会 出来method1
第一种写法是Last binding 方式,代码在编译期不会去检验是否错误,也没有IntelliSense功能(就是按点后自动弹出文字。)这种方式调用速度会稍微慢一些。
第二种写法是使用 dispatch interfaces,使用这种方法速度略快于第一种方式,但是用这种方式你必须在客户端引用服务器端的XXX_TLB unit
myrmsv_TLB.pas文件了。 不直到怎么会提示如本贴中的错误。