델파이에서 Thread를 생성하고 제어하는 dll을 만들었는데요.
이것을 VB에서 참조해서 쓸려구 하는데요.
참조가 안되더군요. 그래서 강제로 레지스터리 등록했는데 그래도 안되네요.
regsvr32 thread.dll
하니깐 'DllRegistrServer 진입점을 찾을 수 없습니다.' 라고 뜨네요.
제가 델파이 초보라서요.
뭐가 문제일까요 함 봐주세요.. 감사요!
<!--CodeS-->
library testThread;
uses
SysUtils,
Classes;
type
TDllThread = class(TThread)
private
public
procedure Execute; override;
end;
var
FThread: TDllThread;
a: array[0..255] of char;
procedure CreateThread; far; cdecl;
begin
a := 'aaa';
FThread := TDllThread.Create(TRUE);
end;
procedure TerminateThread; far; cdecl;
begin
FThread.Terminate;
end;
procedure StopThread; far; cdecl;
begin
FThread.Suspend;
end;
procedure StartThread; far; cdecl;
begin
FThread.Resume;
end;
procedure SetValue(AValue: PChar); far; cdecl;
begin
FillChar(A, SizeOf(A), 0);
StrCopy(a, AValue);
end;
function GetValue: PChar; far; cdecl;
begin
Result := a;
end;
function GetStatus: Boolean; far; cdecl;
begin
Result := FThread.Terminated;
end;
{$R *.res}
procedure TDllThread.Execute;
begin
end;
exports
CreateThread, TerminateThread, StopThread, StartThread, SetValue, GetValue, GetStatus;
begin
end.
<!--CodeE-->
즉, RegSvr32 에서는 DLL을 등록하기위해 특정 함수를 호출하게 됩니다.
COM 등록시 MS에서 정해 놓은 규약이죠. 그 규약을 지켜서 만들어진 DLL이 RegSvr32에 의해 등록될 수 있습니다.
그 규약에 의해 만들수 있게 해주는것이 바로 델파이의 New 를 통해 만들 수 있는 ActiveX 라이브러리 형태로 프로젝트를 만들어서 시작 하셔야 합니다. ^^