类没有注册,请问怎么解决?(100分)

  • 主题发起人 主题发起人 Fox_110
  • 开始时间 开始时间
F

Fox_110

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序拷贝到别的机器上之后,运行时出现“类没有注册”的提示。我在程序中使用了
F1Book。请问该怎么解决这个问题?
 
F1Book是一个ActiveX控件。是要注册才能使用的。

你可以用regsvr32.exe将F1Book注册一下即可。
 
谢谢!我在本机编译运行没问题,拷贝到别的机器上有错误提示。有没有办法在程序中进行
注册?
 
我在别的机器运行regsvr32.exe注册F1Book也通不过,请问该怎么办?
 
可以通过ShellExecute运行regsvr32.exe来动态注册。
 
LRegPath:=StrAlloc(255);
try
GetSystemDirectory(LRegPath,256);
LRegExePath:=string(LRegPath);
finally
StrDispose(LRegPath);
end;
shellexecute(handle,'open','regsvr32.exe',pchar('你需要注册的DLL文件或者OCX文件'),pchar(LRegExePath),SW_HIDE);
 
看看帮助就能解决的问题。

Redistributing Files

You can use all the files accompanying this product for development of an
application. You can redistribute the run time version of the software
according to the terms of the license agreement.

You can ship the following files with your application:

File
VCF132.OCX
MFCANS32.DLL
OC30.DLL
MSVCRT20.DLL

Note These DLLs must be present on a system for Formula One to function
correctly. In addition if you intend to connect to an ODBC database,
ODBC32.DLL must be present. This file is not distributed with Formula One.
 
谢谢各位,这个问题已经解决了:
winexec(pchar('regsvr32.exe -s '+'"'+getcurrentdir()+'/vcf132.ocx'+'"'),sw_show);
现在的问题是,我怎样才能知道机器上是否已经注册过该控件呢?难道每次运行都要注册
一次吗?还是捕获错误信息来注册?有没有这样的函数来检测啊?
 
ActiveX组件输出了两个注册的标准函数DllRegisterServer&DllUnregisterServer
regsvr32就是调用的这两个函数来注册,可以每次都调用DllRegisterServer,
反正不会重复注册:)(是通过在注册表里写GUID来完成,不会冲突)
 
多人接受答案了。
 
后退
顶部