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
[54741] matrox dll imprt시 문제에 대하여 .....
이용희 [topoview] 2742 읽음    2008-10-02 18:01
matrox lite 8.0을 사용하는 중인데..

dll을 import 해서 사용합니다...
문자열 인자로 주는데서 계속  에러가 납니다..

그 부분을 MsysAlloc과 MdigAlloc에서
포인터로 문자열을 인자로 줄때 에러가 납니다..

고수님께 정중희 부탁드립니다..

헤멘지 벌써 10일이 지났습니다...

//
TfrmImg *frmImg;
/*
//카메라 또는 디지타이저 세팅
typedef MIL_ID __stdcall __declspec(dllimport)Func_MappAlloc(long InitFlag,MIL_ID *ApplicationIdPtr);
typedef MIL_ID __stdcall __declspec(dllimport)Func_MsysAlloc(MIL_TEXT_PTR  SystemDescriptor,long SystemNum,long InitFlag,MIL_ID *SystemIdPtr);
typedef MIL_ID __stdcall __declspec(dllimport)Func_MdigAlloc(MIL_ID SystemId,long DigNum,MIL_TEXT_PTR    DataFormat,long InitFlag,MIL_ID *DigIdPtr);
typedef MIL_ID __stdcall __declspec(dllimport)Func_MbufAlloc2d(MIL_ID SystemId,long SizeX,long SizeY,long Type,MIL_INT64 Attribute,MIL_ID *BufIdPtr);
typedef void   __stdcall __declspec(dllimport)Func_MbufClear(MIL_ID DestImageBufId,double Color);
typedef void   __stdcall __declspec(dllimport)Func_MdigControl(MIL_ID DigId,long ControlType,double ControlValue);
//이미지 그랩
typedef void   __stdcall __declspec(dllimport)Func_MdigGrab(MIL_ID DigId,MIL_ID DestImageBufId);
typedef long   __stdcall __declspec(dllimport)Func_MbufInquire(MIL_ID BufId,long InquireType,void *UserVarPtr);
//카메라 및 메모리 해제
typedef void   __stdcall __declspec(dllimport)Func_MbufFree(MIL_ID BufId);
typedef void   __stdcall __declspec(dllimport)Func_MdigFree(MIL_ID DigId);
typedef void   __stdcall __declspec(dllimport)Func_MsysFree(MIL_ID SystemId);
typedef void   __stdcall __declspec(dllimport)Func_MappFree(MIL_ID ApplicationId);

Func_MappAlloc     *MappAlloc;
Func_MsysAlloc     *MsysAlloc;
Func_MdigAlloc     *MdigAlloc;
Func_MbufAlloc2d   *MbufAlloc2d;
Func_MbufClear     *MbufClear;
Func_MdigControl   *MdigControl;
Func_MdigGrab      *MdigGrab;
Func_MbufInquire   *MbufInquire;
Func_MbufFree      *MbufFree;
Func_MdigFree      *MdigFree;
Func_MsysFree      *MsysFree;
Func_MappFree      *MappFree;

//---------------------------------------------------------------------------
__fastcall TfrmImg::TfrmImg(TComponent* Owner)
        : TForm(Owner)
{
}

void __fastcall TfrmImg::InitModule()
{
   hiInstance = LoadLibrary("mil.dll");

   MappAlloc     = (Func_MappAlloc *)GetProcAddress(hiInstance, "MappAlloc");
   MsysAlloc     = (Func_MsysAlloc *)GetProcAddress(hiInstance, "MsysAlloc");
   MdigAlloc     = (Func_MdigAlloc *)GetProcAddress(hiInstance, "MdigAlloc");
   MbufAlloc2d   = (Func_MbufAlloc2d *)GetProcAddress(hiInstance, "MbufAlloc2d");
   MbufClear     = (Func_MbufClear *)GetProcAddress(hiInstance, "MbufClear");
   MdigControl   = (Func_MdigControl *)GetProcAddress(hiInstance, "MdigControl");
   MbufInquire   = (Func_MbufInquire *)GetProcAddress(hiInstance, "MbufInquire");
   MbufFree      = (Func_MbufFree *)GetProcAddress(hiInstance, "MbufFree");
   MdigFree      = (Func_MdigFree *)GetProcAddress(hiInstance, "MdigFree");
   MsysFree      = (Func_MdigFree *)GetProcAddress(hiInstance, "MsysFree");
   MappFree      = (Func_MappFree *)GetProcAddress(hiInstance, "MappFree");

}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------


//---------------------------------------------------------------------------


void __fastcall TfrmImg::FormCreate(TObject *Sender)
{
   InitModule();    
}
//---------------------------------------------------------------------------

void __fastcall TfrmImg::FormClose(TObject *Sender, TCloseAction &Action)
{
   FreeLibrary(hiInstance);     
}
//---------------------------------------------------------------------------



void __fastcall TfrmImg::btnInitClick(TObject *Sender)
{



   MappAlloc(M_DEFAULT,&MilApplication);
   MsysAlloc(M_SYSTEM_SOLIOS,M_DEFAULT,M_DEFAULT,&MilSystem);
   MdigAlloc(MilSystem,M_DEV0,milDcf,M_DEFAULT,&MilDigitizer);
   MbufAlloc2d(MilSystem,width,height,16+M_UNSIGNED,M_IMAGE+M_GRAB,&MilImage);
   MbufClear(MilImage,0xff);
   MdigControl(MilDigitizer,M_GRAB_MODE,M_ASYNCHRONOUS);
}
//---------------------------------------------------------------------------

void __fastcall TfrmImg::btnGrabClick(TObject *Sender)
{
   MdigGrab(MilDigitizer,MilImage);
   MbufInquire(MilImage,M_HOST_ADDRESS,&pImg);    
}
//---------------------------------------------------------------------------

void __fastcall TfrmImg::btnFreeClick(TObject *Sender)
{
   MbufFree(MilImage);
   MdigFree(MilDigitizer);
   MsysFree(MilSystem);
   MappFree(MilApplication);    
}
///
그런데
MsysAlloc(M_SYSTEM_SOLIOS,M_DEFAULT,M_DEFAULT,&MilSystem);
MdigAlloc(MilSystem,M_DEV0,milDcf,M_DEFAULT,&MilDigitizer);
에러가 납니다..
MIL_TEXT_PTR  는 mil.h에서 보면
char *로 선언 되어 있습니다.

왜 애러가 나는지
어떻게 해결하셨는지
한수 부탁드립니다...

+ -

관련 글 리스트
54741 matrox dll imprt시 문제에 대하여 ..... 이용희 2742 2008/10/02
54757     Re:matrox dll imprt시 문제에 대하여 ..... 크레브 5691 2008/10/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.