我编了一个外壳扩展程序,工程文件如下:library RealRMenu;uses
ComServ,
RealRMenu1 in 'RealRMenu1.pas';exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;{$R *.RES}begin
end.上面的程序编译后生成
我在程序的button1的onclick事件里调用DllRegisterServer可以向系统注册一个右键菜单项,
但是,在调用DllUnRegisterServer时老是不正确,提示信息如下: "不能定位DllUnRegisterServer的入口点!"调用的单元代码如下:unit CallRealRMenu1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function DllRegisterServer:HResult;stdcall;external 'RealRMenu.dll';
function DllUnRegisterServer:HResult;Stdcall;external 'RealRMenu.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
DllRegisterServer; //这儿没有问题
end;procedure TForm1.Button2Click(Sender: TObject);
begin
DllUnRegisterServer; //这个地方调用出错
end;end.哪位高手知道怎么解决! 请指点一下,不胜感激!
ComServ,
RealRMenu1 in 'RealRMenu1.pas';exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;{$R *.RES}begin
end.上面的程序编译后生成
我在程序的button1的onclick事件里调用DllRegisterServer可以向系统注册一个右键菜单项,
但是,在调用DllUnRegisterServer时老是不正确,提示信息如下: "不能定位DllUnRegisterServer的入口点!"调用的单元代码如下:unit CallRealRMenu1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function DllRegisterServer:HResult;stdcall;external 'RealRMenu.dll';
function DllUnRegisterServer:HResult;Stdcall;external 'RealRMenu.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
DllRegisterServer; //这儿没有问题
end;procedure TForm1.Button2Click(Sender: TObject);
begin
DllUnRegisterServer; //这个地方调用出错
end;end.哪位高手知道怎么解决! 请指点一下,不胜感激!
解决方案 »
- 怎么根据列的位置更新数据
- 如何根据数据库中表中的字段来查找数据库
- 在RAVE报表中如何进行分组统计?
- 如何屏蔽数据库错误
- 那位大侠给我提供点delphi控制word、excel的代码,以及.net和c#的书籍下载等
- 越南炮舰枪击的我国渔船 一艘获救另一艘下落不明
- 一个关于货币型字段在提交时发生的小数问题
- TWebBrowser如何得到网页的源文件..
- 如何在object inspector中改变pagecontrol中标签的文字,谢谢
- 关于颜色显示的问题。
- 为什么会出现说无效的SQL语句
- 用 AD0TABLE 连接表时(含有二进制字段,类型为 BLOB ),ACTIVE 置为 TRUE 时会出现错误!(数据类型不被支持)进者有分!
DllUnregisterServer;
等是实现COM组件的标准接口,是由系统调用的,你只需要在程序中实现这些方法就可以了。而实际通过DElphi,你甚至可以不需要编写这些方法的实现,Delphi向导会自动实现这些接口的,参考:http://www.csdn.net/Develop/Read_Article.asp?Id=7099