Q&A

  • 제가만든 DLL을 불러서 사용하려고 하면....
제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

소스에 문제가 있는건지 ... 잘 모르겠어요

도와주세요





library thirddll;

uses

SysUtils,

Classes,

third in 'third.pas' {Form1};



exports

fmJuminValid index 1;



begin

end.





-------------

var

Form1: TForm1;



procedure fmJuminValid; stdcall;



implementation







procedure fmJuminValid;

var

Form1 : TForm1;

begin

Form1 := TForm1.Create(Application);

Form1.ShowModal;

Form1.Free;

end;







-------------

implementation

procedure fmJuminValid; stdcall; external 'thirddll.dll';

{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

fmJuminValid;

end;











5  COMMENTS
  • Profile
    최용일 2000.06.27 23:45
    안녕하세요. 최용일입니다.



    소스에는 별 문제가 없는 것 같은데요... 혹시 폼에서 OLE를 사용하지 않으셨는지...



    내용은 OLE관련에러인데.. 혹시 예외가 EOLESysError 아닌가요? OLE초기화를 안해주어



    서 생기는 에러 같은데요... CoInitialize함수를 써서 초기화를 해주세요.



    ^^ 항상 즐코하세요.



    이병웅 wrote:

    > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

    > 아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

    > 어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

    > 소스에 문제가 있는건지 ... 잘 모르겠어요

    > 도와주세요

    >

    >

    > library thirddll;

    > uses

    > SysUtils,

    > Classes,

    > third in 'third.pas' {Form1};

    >

    > exports

    > fmJuminValid index 1;

    >

    > begin

    > end.

    >

    >

    > -------------

    > var

    > Form1: TForm1;

    >

    > procedure fmJuminValid; stdcall;

    >

    > implementation

    >

    >

    >

    > procedure fmJuminValid;

    > var

    > Form1 : TForm1;

    > begin

    > Form1 := TForm1.Create(Application);

    > Form1.ShowModal;

    > Form1.Free;

    > end;

    >

    >

    >

    > -------------

    > implementation

    > procedure fmJuminValid; stdcall; external 'thirddll.dll';

    > {$R *.DFM}

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > fmJuminValid;

    > end;

    >

    >

    >

    >

    >

  • Profile
    이병웅 2000.06.28 00:01
    용일님 답변에 감사합니다..

    용일님의 말씀이 맞아요 OleSysError 그런데 coinitialize 함수는

    어디에서 어떻게 호출합니까?

    저는 그함수를 델파이 도움말에서 찾아봐도 안나오고 어떻게 해야

    할지 막막하네요... 어떻게 OLE 초기화를 해줘야 하는지요

    답변 부탁드립니다. ^^ .... 꾸벅



    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > 소스에는 별 문제가 없는 것 같은데요... 혹시 폼에서 OLE를 사용하지 않으셨는지...

    >

    > 내용은 OLE관련에러인데.. 혹시 예외가 EOLESysError 아닌가요? OLE초기화를 안해주어

    >

    > 서 생기는 에러 같은데요... CoInitialize함수를 써서 초기화를 해주세요.

    >

    > ^^ 항상 즐코하세요.

    >

    > 이병웅 wrote:

    > > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

    > > 아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

    > > 어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

    > > 소스에 문제가 있는건지 ... 잘 모르겠어요

    > > 도와주세요

    > >

    > >

    > > library thirddll;

    > > uses

    > > SysUtils,

    > > Classes,

    > > third in 'third.pas' {Form1};

    > >

    > > exports

    > > fmJuminValid index 1;

    > >

    > > begin

    > > end.

    > >

    > >

    > > -------------

    > > var

    > > Form1: TForm1;

    > >

    > > procedure fmJuminValid; stdcall;

    > >

    > > implementation

    > >

    > >

    > >

    > > procedure fmJuminValid;

    > > var

    > > Form1 : TForm1;

    > > begin

    > > Form1 := TForm1.Create(Application);

    > > Form1.ShowModal;

    > > Form1.Free;

    > > end;

    > >

    > >

    > >

    > > -------------

    > > implementation

    > > procedure fmJuminValid; stdcall; external 'thirddll.dll';

    > > {$R *.DFM}

    > >

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > begin

    > > fmJuminValid;

    > > end;

    > >

    > >

    > >

    > >

    > >

  • Profile
    최용일 2000.06.28 00:11
    안녕하세요. 최용일입니다.



    OLE 인스턴스를 사용하기 전에 CoInitialize(nil); 이렇게 초기화를 해주시면 됩니다.



    리턴값 이 S_OK이면 성공적으로 초기화가 된것입니다.



    델파이메뉴에 있는 Help/Windows SDK Help나 시작메뉴의 델파이에서 MS SDK Help Files



    폴더, 또 CoInitialize에 커서를 놓고 Ctrl-F1하시면 도움말을 보실수 있습니다.



    ^^ 항상 즐코하세요.



    이병웅 wrote:

    > 용일님 답변에 감사합니다..

    > 용일님의 말씀이 맞아요 OleSysError 그런데 coinitialize 함수는

    > 어디에서 어떻게 호출합니까?

    > 저는 그함수를 델파이 도움말에서 찾아봐도 안나오고 어떻게 해야

    > 할지 막막하네요... 어떻게 OLE 초기화를 해줘야 하는지요

    > 답변 부탁드립니다. ^^ .... 꾸벅

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > 소스에는 별 문제가 없는 것 같은데요... 혹시 폼에서 OLE를 사용하지 않으셨는지...

    > >

    > > 내용은 OLE관련에러인데.. 혹시 예외가 EOLESysError 아닌가요? OLE초기화를 안해주어

    > >

    > > 서 생기는 에러 같은데요... CoInitialize함수를 써서 초기화를 해주세요.

    > >

    > > ^^ 항상 즐코하세요.

    > >

    > > 이병웅 wrote:

    > > > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

    > > > 아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

    > > > 어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

    > > > 소스에 문제가 있는건지 ... 잘 모르겠어요

    > > > 도와주세요

    > > >

    > > >

    > > > library thirddll;

    > > > uses

    > > > SysUtils,

    > > > Classes,

    > > > third in 'third.pas' {Form1};

    > > >

    > > > exports

    > > > fmJuminValid index 1;

    > > >

    > > > begin

    > > > end.

    > > >

    > > >

    > > > -------------

    > > > var

    > > > Form1: TForm1;

    > > >

    > > > procedure fmJuminValid; stdcall;

    > > >

    > > > implementation

    > > >

    > > >

    > > >

    > > > procedure fmJuminValid;

    > > > var

    > > > Form1 : TForm1;

    > > > begin

    > > > Form1 := TForm1.Create(Application);

    > > > Form1.ShowModal;

    > > > Form1.Free;

    > > > end;

    > > >

    > > >

    > > >

    > > > -------------

    > > > implementation

    > > > procedure fmJuminValid; stdcall; external 'thirddll.dll';

    > > > {$R *.DFM}

    > > >

    > > > procedure TForm1.Button1Click(Sender: TObject);

    > > > begin

    > > > fmJuminValid;

    > > > end;

    > > >

    > > >

    > > >

    > > >

    > > >

  • Profile
    김진호 2000.06.27 23:11
    이병웅 wrote:

    > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

    > 아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

    > 어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

    > 소스에 문제가 있는건지 ... 잘 모르겠어요

    > 도와주세요

    >

    >

    > library thirddll;

    > uses

    > SysUtils,

    > Classes,

    > third in 'third.pas' {Form1};

    >

    > exports

    > fmJuminValid index 1;

    >

    > begin

    > end.

    >

    >

    > -------------

    > var

    > Form1: TForm1;

    >

    > procedure fmJuminValid; stdcall;

    >

    > implementation

    >

    >

    >

    > procedure fmJuminValid;

    > var

    > Form1 : TForm1;

    > begin

    > Form1 := TForm1.Create(Application);

    > Form1.ShowModal;

    > Form1.Free;

    > end;

    >

    >

    >

    > -------------

    > implementation

    > procedure fmJuminValid; stdcall; external 'thirddll.dll';

    > {$R *.DFM}

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > fmJuminValid;

    > end;

    >



    Application객체의 핸들을 넣으시면...



    procedure fmJuminValid(Han : HWND);

    var

    Form1 : TForm1;

    begin

    Application.Handle := Han;

    Form1 := TForm1.Create(Application);

    Form1.ShowModal;

    Form1.Free;

    end;





  • Profile
    이병웅 2000.06.27 23:36
    진호님 답변에 감사드립니다...

    진호님이 시키는 데로 했는데 똑같은 메시지가 나네요

    제가 잘못 해서 그런가요 제가 진호님 이 말슴하신데로 아래

    소스를 바꿔 보겠습니다.



    김진호 wrote:

    > 이병웅 wrote:

    > > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지가 나옵니다...

    > > 아래의 소스는 DLL 관련된 부분만을 적어 놓은것입니다.

    > > 어떤 폼을 가진 DLL을 만들어서 사용하는 것인데요

    > > 소스에 문제가 있는건지 ... 잘 모르겠어요

    > > 도와주세요

    > >

    > >

    > > library thirddll;

    > > uses

    > > SysUtils,

    > > Classes,

    > > third in 'third.pas' {Form1};

    > >

    > > exports

    > > fmJuminValid index 1;

    > >

    > > begin

    > > end.

    > >

    > >

    > > -------------

    > > var

    > > Form1: TForm1;

    > >

    > > procedure fmJuminValid(han : hwnd); stdcall;

    > >

    > > implementation

    > >

    > >

    > >

    > > procedure fmJuminValid(Han : Hwnd);

    > > var

    > > Form1 : TForm1;

    > > begin

    application.handle := han;

    > > Form1 := TForm1.Create(Application);

    > > Form1.ShowModal;

    > > Form1.Free;

    > > end;

    > >

    > >

    > >

    > > -------------

    > > implementation

    > > procedure fmJuminValid(han : hwnd);

    stdcall;external 'thirddll.dll';

    > > {$R *.DFM}

    > >

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > begin

    > > fmJuminValid;

    > > end;

    > >

    >

    > Application객체의 핸들을 넣으시면...

    >

    > procedure fmJuminValid(Han : HWND);

    > var

    > Form1 : TForm1;

    > begin

    > Application.Handle := Han;

    > Form1 := TForm1.Create(Application);

    > Form1.ShowModal;

    > Form1.Free;

    > end;

    >

    >

    • hsband
    • 2000.06.28 00:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • s6763
      2000.06.28 18:03
      hsband wrote: > 델파이를 이용해 Paradox로 DB를 사용하고 있습니다.그런데 두개의 폼에서 Paradox로 연...
    • 이재식
      2000.06.28 04:14
      hsband wrote: > 델파이를 이용해 Paradox로 DB를 사용하고 있습니다.그런데 두개의 폼에서 Paradox로 연...
    • hsband
      2000.06.29 05:59
      이재식 wrote: > hsband wrote: > > 델파이를 이용해 Paradox로 DB를 사용하고 있습니다.그런데 두개의 ...
    • 문홍철
      2000.06.28 01:16
      타락천사 wrote: > 안녕하세여.. 타락임다..^^ > > 자꾸 질문하네여..^^;; > > 책에는 마스터, 디테...
    • 원영준
    • 2000.06.28 00:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri
      2000.06.28 00:39
      loginprompt라는 속성이 true로 되어있는것 아닌가요? 데이터베이스컴포넌트를 더블클릭하시거나 오브젝...
    • 원영준
      2000.06.28 00:58
      미치것네요!
    • 홍세비
      2000.06.28 19:30
      원영준 wrote: > 미치것네요! 안녕하세요.홍세빕니다. 저도 그것땜시 고민한 적이 있었죠. http...
    • 심민기
    • 2000.06.28 00:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2000.06.29 01:48
      제발 가르쳐 줘요. 저도 모르겠어여, 헝헝헝... > 안녕하십니까 > usb 카메라를 사용 하는데 > 내프로...
    • 바보
      2000.07.01 07:45
      안녕하세요!! 바보 입니다. 화상카메라 사이즈포맷이라.. 저도 몰라요!! ^^;;(바보가 뭘알겠어) 보통 ...
    • delcom
      2000.07.08 02:47
      왕델초보 wrote: > > 스트링 그리드 내용을 엑셀로 보내기 기능을 구현할 수 있나요? > > 디비그리드...
    • 김양미
    • 2000.06.28 00:12
    • 8 COMMENTS
    • /
    • 0 LIKES
    • s6763
      2000.06.28 18:13
      const LQuote='('; RQuote=')'; quote='"'; comma=','; values=' values '; procedure cusor...
    • 김진호
      2000.06.28 00:41
      김양미 wrote: > begin > with Query1 do begin > close; > sql.clear; > ...
    • 문홍철
      2000.06.28 00:36
      김양미 wrote: > begin > with Query1 do begin > close; > sql.clear; > ...
    • 원영준
      2000.06.28 00:34
      혹시 SQL문이 틀린거 아닌지요 sql.add('insert into emp(empno, ename, job, mrg, hiredate, sal, com...
    • 김양미
      2000.06.28 01:05
      답변에 넘 감사드립니다.. 모르던것도 알게되구.. 미안하게도 에러는 끝나지 않네여.. sql문의 ) 괄호 넣...
    • cell
      2000.06.28 01:45
      숫자일 경우는 그냥 edit1.Text 만 쓰면 됩니다. '(''' + Edit2.Text + ''',' + Edit1.Text + ...
    • 원영준
      2000.06.28 01:15
      > Project prg.exe raised exception class EDBEngineError with message 'General SQL error. > ORA-00...
    • • • •
    • 잠씨
      2000.06.27 23:39
      원영준 wrote: > 그것이 궁금합니다. 건강하세여! Query1.RecordCount
    • 잠씨
    • 2000.06.27 23:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이병웅
    • 2000.06.27 22:53
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.06.27 23:45
      안녕하세요. 최용일입니다. 소스에는 별 문제가 없는 것 같은데요... 혹시 폼에서 OLE를 사용하지 않으...
    • 이병웅
      2000.06.28 00:01
      용일님 답변에 감사합니다.. 용일님의 말씀이 맞아요 OleSysError 그런데 coinitialize 함수는 어디에서 ...
    • 최용일
      2000.06.28 00:11
      안녕하세요. 최용일입니다. OLE 인스턴스를 사용하기 전에 CoInitialize(nil); 이렇게 초기화를 해주시...
    • 김진호
      2000.06.27 23:11
      이병웅 wrote: > 제가 만든 DLL을 사용하려고 하면 coinitialize를 호출할수 없습니다. 라는 에러메시지...
    • 이병웅
      2000.06.27 23:36
      진호님 답변에 감사드립니다... 진호님이 시키는 데로 했는데 똑같은 메시지가 나네요 제가 잘못 해서 그...
    • 최용일
      2000.06.27 23:20
    • 사발우성
      2000.06.28 00:13
    • 최용일
      2000.06.28 00:32
    • 사발우성
      2000.06.28 00:49
    • 최용일
      2000.06.28 00:54
    • 돌맹이
    • 2000.06.27 22:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 문홍철
      2000.06.28 00:19
      돌맹이 wrote: > Select Distinct Cu.Seq,Cu.CustomerCode, S.CustomerKind,Cu.CustomerName, Cu.Charge, ...
    • 투신
    • 2000.06.27 21:59
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 델초
    • 2000.06.27 21:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 황인득
    • 2000.06.27 21:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2000.06.29 20:32
      NMUDP에서 WM_ENDQUERYSESSION이라는 메세지를 처리해 주지 않은 버그입니다. Delphi 3까지는 ActiveX이...
    • 강대근
      2000.07.07 03:03
      아마 dbgrid.column.status 가 csDefault가 아니어서 일겁니다. formshow나formcreate에서 dbgrid1.colum...
    • 문홍철
      2000.06.28 00:23
      나원용 wrote: > 안녕하세요? > 프로그램을 개발하다가 > DBGRID의 OnDrawDataCell 이벤트에 코드를 추...
    • 김봉준
    • 2000.06.27 20:52
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김봉준
      2000.06.27 23:10
      대소문자를 구별하지 않는건.. 필드명이 아닌가 합니다.. 예를 들어 'title'란 필드의 항목에.. WordPro...
    • 모질이
      2000.08.01 04:34
      간단하게 할수 있는 방법 searchtext:=uppercase(searchtext.text); select * from Test where (uppe...
    • 유레카
      2000.06.27 22:41
      파라독스는 대소문자를 구분하지 않는 걸로 알고 있는데요. 다만 화면상 첫자가 대문자로 표현될 뿐 아닌...