C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18237] Re:Re:Re:한가지 더요..
유영인 [Chris] [cuperido] 1051 읽음    2002-05-07 18:01
혹시 Application->CreateForm을 제거하셨나요? 아니면, Option에서 Form 을 자동생성이 안되게 하셨나요? 그러면.. OnCreate 이벤트가 실행이 안되거든요.. 긁적..

DLLInstSetForm = LoadLibrary("Project1.dll");

위 부분에서요, Break Point를 한번 지정해 보시고 (Break Point는 해당 줄에서 F5키), 거기까지 커서가 가는지 테스트를 한번 해보시는것도 좋을것 같아요.. DLL 파일의 배포 정의도 잘 되었나 확인이 필요하구요..

프로젝트 압축해서 첨부해주시면 한번 연구해볼께요.. 별루 할것두 없는데.. ^^

글구.. 제목 고쳐주셔서 꾸벅~ ^^


송경남 님이 쓰신 글 :
: extern __declspec(dllexport) void __fastcall ReSetForm(void)
: {
:    AnsiString TS;
:     float FramesPerSec = 50.0;
:
:     int nID=-1;
:     char lpszName[80];
:     char lpszVer[80];
:     lpszName[0]='\0';
:     lpszVer[0]='\0';
:
:     for (int i=0;i<=9;i++)
:       if (capGetDriverDescription( i, lpszName, sizeof(lpszName), lpszVer, sizeof(lpszVer)))
:       {
:         nID=i;
:         TS="";
:         TS=TS+IntToStr(nID)+": "+lpszName+", "+lpszVer;
:         Form1->ComboBox1->Items->Add(TS);
:       }
:
:     if (nID==-1)
:     {
:        ShowMessage("!!");
:        exit(-1);
:     }
:     else
:     {
:         Form1->ComboBox1->ItemIndex=0;
:         nID=StrToInt(Form1->ComboBox1->Items->Strings[0].c_str()[0]);
:         Form1->ComboBox1->Hint=Form1->ComboBox1->Items->Strings[0];
:     }
:
:         Form1->Panel1->Width=166;
:         Form1->Panel1->Height=126;
:         Form1->Image1->Picture=0;
:         Form1->Image1->Width=160;
:         Form1->Image1->Height=120;
:         Form1->Image1->Left=3;
:         Form1->Image1->Top=3;
:         Form1->Image2->Width=160;
:         Form1->Image2->Height=120;
:         Form1->Image2->Left=3;
:         Form1->Image2->Top=3;
:         Form1->Image3->Width=160;
:         Form1->Image3->Height=120;
:         Form1->Image3->Left=3;
:         Form1->Image3->Top=3;
:
:         Form1->Panel2->Width=166;
:         Form1->Panel2->Height=126;
:         Form1->Panel2->Left=Form1->Panel1->Left+Form1->Panel1->Width;
:
:         Form1->ClientHeight=Form1->Panel1->Height+/*Panel3->Height+*/Form1->Panel4->Height+Form1->Panel5->Height+Form1->ProgressBar1->Height;
:         Form1->ClientWidth=2*Form1->Panel1->Width;
:
:         Form1->SpeedButton6->Enabled=false;
:         Form1->SpeedButton5->Enabled=false;
:         Form1->SpeedButton2->Enabled=false;
:
:     hWndC1 = capCreateCaptureWindow ( (LPSTR) "My Capture Window",
:                                      WS_CHILD | WS_VISIBLE,
:                                      3, 3, 160, 120,
:                                      Form1->Panel1->Handle,
:                                      (int) nID );
:
:     bool fOK1=false;
:     BITMAPINFO myBITMAPINFO1;
:     CAPSTATUS  CapStatus1;
:
:     fOK1 = capDriverConnect(hWndC1, 0);
:     if (fOK1)
:     {
:         capGetVideoFormat(hWndC1,&myBITMAPINFO1,sizeof(myBITMAPINFO1));
:
:         myBITMAPINFO1.bmiHeader.biWidth=160;
:     myBITMAPINFO1.bmiHeader.biHeight=120;
:     myBITMAPINFO1.bmiHeader.biBitCount=24;
:     myBITMAPINFO1.bmiHeader.biSizeImage=3*160*120;
:
:         capSetVideoFormat(hWndC1,&myBITMAPINFO1,sizeof(myBITMAPINFO1));
:         capGetStatus(hWndC1, &CapStatus1, sizeof (CAPSTATUS));
:         SetWindowPos(hWndC1, NULL, 0, 0, CapStatus1.uiImageWidth,
:                         CapStatus1.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);
:         capPreviewRate(hWndC1, 1.0e3/FramesPerSec);
:         capPreview(hWndC1, TRUE);
:     }else  ShowMessage("!!");
: }
: //---------------------------------------------------------------------------
:
: 여기까지가 dll입니다..
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:  HINSTANCE DLLInstSetForm;
:
:   DLLInstSetForm = LoadLibrary("Project1.dll");   // dll화일을 읽는다
:
:   if( DLLInstSetForm ) {
:    (void(__fastcall *)(void))GetProcAddress(DLLInstSetForm, "ReSetForm");
:
:   }
: }
: //---------------------------------------------------------------------------
: dll 호출하는 부분이구요..
:
:
: 정말 답답해서 이렇게 올립니다.. 뭐든 답변 부탁드립니다.. 아예
: void __fastcall TForm1::FormCreate(TObject *Sender){..}부분을 실행하지 않는거 같습니다..
:
: 휴융~~~
:
: 감사합니다..

+ -

관련 글 리스트
18232 한가지 더요.. 송경남 792 2002/05/07
18234     Re:한가지 더요.. 유영인 [Chris] 789 2002/05/07
18235         Re:Re:한가지 더요.. 송경남 900 2002/05/07
18237             Re:Re:Re:한가지 더요.. 유영인 [Chris] 1051 2002/05/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.