library ProSummaryCom;uses
ShareMem,
ComServ,
ReportSummary in 'ReportSummary.pas', //COM定义单元
UReportSummary in 'UReportSummary.pas', //COM实现单元
ProSummaryCom_TLB in 'ProSummaryCom_TLB.pas';exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;{$R *.TLB}{$R *.RES}beginend.是从TComObject继承的 TReportSummary=class(TComObject,IReportSummary)用regsvr32 注册时先出现注册成功:---------------------------
RegSvr32
---------------------------
F:\Delphi_Project\headpms_xj\pms_sg\source\Report\Summary\ProSummaryCom.dll 中的 DllRegisterServer 成功。
---------------------------
确定
---------------------------确定后就出现一个错误:
---------------------------
regsvr32.exe - 应用程序错误
---------------------------
"0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。
要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
---------------------------
确定 取消
---------------------------卸载时也是同样的,成功了,但出现一个错误对话框.注册后可以正常使用,但什么原因引起的错误呢??如果自己加载了DLL文件,想得到它的 DllRegisterServer 方法.
hFunctionAddress := GetProcAddress(hLibraryhandle,PChar('DllRegisterServer'));hFunctionAddress 确总是nil ,为什么找不到 DllRegisterServer方法呢??
UReportSummary in 'UReportSummary.pas', //COM实现单元
ProSummaryCom_TLB in 'ProSummaryCom_TLB.pas';
这三个单元的
initializationfinalization分别写了什么内容?检查下?