Dll封装问题(100分)

  • 主题发起人 主题发起人 lovellybaby
  • 开始时间 开始时间
L

lovellybaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中的一个Function写
var
a:variant;
begin
a:= CreateOleObject('Outlook.Application');
.............
end;
在编译成exe时一切正常,能完成任务。
但把该函数作为Dll的导出函数是总是在那一句创建Ole对象是错误,显示SysOleError。不知何故??
 
DLL 的 dpr 加入如下代码:

uses
SysUtils,
Classes,
Windows,
ActiveX;

procedure DLLEntryPoint(dwReason: DWORD);
begin
case dwReason of
DLL_THREAD_ATTACH:
;
DLL_THREAD_DETACH:
;
DLL_PROCESS_ATTACH:
CoInitialize(nil);
DLL_PROCESS_DETACH:
CoUninitialize;
else
;
end;
end;
...
begin
DllProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
 
来玩了.只好说声支持楼上的.
DLL和线程在使用COM/OLE技术的时候都要CoInitialize/CoUninitialize
 
多人接受答案了。
 
后退
顶部