Q&A

  • Thread dll을 만들었는데 등록이 안되네요...
델파이에서 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-->
1  COMMENTS
  • Profile
    이정욱 2007.12.15 04:15
    AcitveX 라이브러리 형식으로 만드셔야 합니다.

    즉, RegSvr32 에서는 DLL을 등록하기위해 특정 함수를 호출하게 됩니다.

    COM 등록시 MS에서 정해 놓은 규약이죠. 그 규약을 지켜서 만들어진 DLL이 RegSvr32에 의해 등록될 수 있습니다.

    그 규약에 의해 만들수 있게 해주는것이 바로 델파이의 New 를 통해 만들 수 있는 ActiveX 라이브러리 형태로 프로젝트를 만들어서 시작 하셔야 합니다. ^^