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
[18281] 또 올립니다.. dll을 호출해서~~
송경남 [] 899 읽음    2002-05-08 17:00
dll을 호출해서 폼사이즈를 바꾼다.. 간단하지여?
근데 그 간단한 것이 안되네여.~~

dll입니다. 좀 긴데.. 내용은 받은 파라메터로 이미지 사이즈를 변형해주는 겁니다..

extern "C" __declspec(dllexport) void __fastcall myResize(TObject *Sender, TImage *Im, int nw, int nh)
{

        int w=Im->Picture->Bitmap->Width;
        int h=Im->Picture->Bitmap->Height;

        ....//

        Graphics::TBitmap *B = new Graphics::TBitmap();

        B->Width=nw;
        B->Height=nh;
        B->PixelFormat=pf24bit;

        for (int j=0;j<nh;j++)
        {
                curx=(double)j*ky;
                downx=floor(curx);
                upx=ceil(curx);
                if (upx==h) upx--;
                for (int i=0;i<nw;i++)
                {
                        B->Canvas->Pixels[i][j]=(TColor)( (LineFunc(downx,Rt[i][downx],upx,Rt[i][upx],curx)) +
                                                         ((LineFunc(downx,Gt[i][downx],upx,Gt[i][upx],curx))<<8) +
                                                         ((LineFunc(downx,Bt[i][downx],upx,Bt[i][upx],curx))<<16));
                }
        }
        Im->Picture->Bitmap->Assign(B);
        for (int i = 0; i < w;  i++) {
                delete[] R1[i], delete[] G1[i], delete[] B1[i]; }
        delete[] R1, delete[] G1, delete[] B1;

        for (int i = 0; i < nw;  i++) {
                delete[] Rt[i], delete[] Gt[i], delete[] Bt[i]; }
        delete[] Rt, delete[] Gt, delete[] Bt;

        B->Free();

}

dll을 호출하는 부분입니다..
void __fastcall TWBMPForm::mmyResize(TObject *Sender, TImage *Im, int nw, int nh)
{
       HINSTANCE DLLInstNewForm;  
       DLLInstNewForm = LoadLibrary("resize.dll"); 
  if( DLLInstNewForm ) {
     CreateNewForm = (void(__fastcall *)(TObject *Sender, TImage *Im, int nw, int nh))GetProcAddress(DLLInstNewForm, "myResize");

     if( CreateNewForm ) {
        CreateNewForm(WBMPForm, WBMPForm->Image1, CSpinEdit1->Value, CSpinEdit2->Value); 
     }

     FreeLibrary(DLLInstNewForm);  
  }
  else {
     ShowMessage(SysErrorMessage(GetLastError()));
     ShowMessage("Unable to load the DLL");
}
}

그리고 이 dll을 호출하는 mmyResize는 다른 폼에서 호출하고 있습니다..

dll 호출도 되는데.. 사이즈가 변하지 않습니다..

아마도 파라메타를 잘못 넘겨주지 싶은데..
아님.. 변환후 그 값을 못 돌려주던지..

어느 부분이 잘 못 되었는지.. 좀 알려줒세요.. 그럼 감사합니다..

+ -

관련 글 리스트
18281 또 올립니다.. dll을 호출해서~~ 송경남 899 2002/05/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.