帮忙看看这段代码?多谢了,
下面这段代码是我用来注册mscomm控件的,执行后会显示correct,但是我的程序运行时还是找不到mscomm.望赐教
procedure TForm1.Button1Click(Sender: TObject);
var
OCXHand: THandle;
RegFunc: pointer;//TDllRegisterServer; //add to the uses clause
begin
OCXHand:= LoadLibrary('c:\winnt\system32\mscomm32.ocx');
RegFunc:= GetProcAddress(OCXHand, 'DllRegisterServer'); //case sensitive
if RegFunc <> nil then
begin
ShowMessage('correct!');
end
else
ShowMessage('Error!');
FreeLibrary(OCXHand);
// You can the same way unregister the OCX:
// replace 'DllRegisterServer' by 'DllUnregisterServer'
end;
问题点数:20、回复次数:7Top
1 楼thebest123(凌然)回复于 2003-11-02 13:23:38 得分 0
我呀看不懂Top
2 楼Shince()回复于 2003-11-02 13:53:06 得分 2
这是Delphi's Help 对 GetProcAddress 的描述:
If the function succeeds, the return value is the address of the DLL's exported function.
你取得地址后什么都没做,不知道你想解决什么问题.Top
3 楼ekin(风语者)回复于 2003-11-02 13:55:08 得分 0
我想注册mscomm控件,因为我写的一个程序用到他Top
4 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2003-11-02 15:15:38 得分 5
看看 C:\Program Files\Borland\Delphi7\Demos\ActiveX\TRegSvr
的代码, 对你有帮助的!!!
我也自己写了注册MsComm的, 但不是用你的方法!!Top
5 楼ekin(风语者)回复于 2003-11-02 15:36:22 得分 0
可是例子中的方法我好象行不通,而且运行例子的时候就会报错Top
6 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2003-11-02 15:39:14 得分 5
绝对没问题的, 我就是从这个学到注册 Ocx 的方法!!!Top
7 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2003-11-02 15:44:45 得分 8
>>执行后会显示correct,但是我的程序运行时还是找不到mscomm.
你上面的代码也没问题,试试在你代码后加上, 而且, Mscomm 需要三个文件才是完整的!!
var
MyReg: TRegistry;
rMscom: TResourceStream;
sFP: string; c: array[0..1000] of char;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_CLASSES_ROOT;
if MyReg.OpenKey('\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905', True) then
begin
MyReg.WriteString('', 'kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun');
end;
MyReg.CloseKey;
MyReg.Free;
end;
Top




