|
음.. 안녕하세요. 이것이 생각보다 잘 않되네요. ^^;;
혹시 성공하신분은 조언 부탁드립니다.
--------------------------------------------------------
오늘의 난제 :
=====================
MFC확장형 DLL의 경우 MFC를 지원하지 않는 언어에서는 사용할 수가 없답니다.
볼렌드나 시만텍계열의 C++컴파일러는 MFC를 지원한다고 합니다.
즉, 어떻게 처리하면 MFC확장형 DLL을 C++Builder나 Delphi에서 사용할수 있을까요?
사용할 툴 : C++Builder6 (왜냐면, C++이니까...)
사용할 SDK : DVR Card용 SDK(Company : Sentry)
조금더 자세한 설명 :
=====================
DVR 보드(Sentry사 보드)를 가지고 영상처리에 사용할 정지화면과 동영상(AVI)를
취득하려 하는데, VC++용 DLL로 제공을 합니다.
가만히 헤더 파일을 들여다보니, 확장형 DLL타입이 아닌 Class 타입으로 제공하더군요.
그것도 MFC확장 타입으로 말입니다.
아무것도 하지않고, Header만 삽입해도
#include <afx.h>
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include ".\\DVRHpp\\common_def.h"
#include ".\\DVRHpp\\DeviceControl.h"
이런류의 에러가 발생하더군요.
WINDOWS.H already included. MFC apps must not #include <windows.h>
//-------- 헤더 파일의 종류 ----------------
// 타입선언류
common_def.h
const_def.h
display_def.h
type_def.h
//실제 구현부
DeviceControl.h
//-------- DLL 파일의 종류 ----------------
// Capture에 관계된 dll
DCapture.dll
// Image에 관계된 dll
DxImage.dll
//-------- 실제 구현부[헤더 일부] ----------------
//DeviceControl.h
#pragma once
#include "common_def.h"
#include "type_def.h"
// CDeviceControl
#define DX_SURFACE 16
typedef struct tagDISP_INFO
{
int nDevice;
BOOL fConvertDisplayAddress;
} DISP_INFO, *LPDISP_INFO;
class AFX_EXT_CLASS CDeviceControl : public CWnd
{
DECLARE_DYNAMIC(CDeviceControl)
public:
CDeviceControl();
virtual ~CDeviceControl();
protected:
// DECLARE_MESSAGE_MAP()
public:
int GetSystemVersion(void); // OS version
private:
CWnd *m_pWnd;
CWnd *m_pDisplayParentWnd;
CRect m_DisplayRect;
HANDLE m_hDevVideoCapture[DEV_MAX_DEVICE];
HANDLE m_hDevAudioCapture[DEV_MAX_DEVICE];
int m_nDevAudioCount;
int m_nDevVideoCount;
int m_nDevChannelCount;
BOOL m_fDevOpen;
BOOL m_fDisplayO
..........중 략 ..................
}
음... 살짝 머리가 아프네요.
그냥, VC로 다 짜야하나 --;;; GUI가 상당히 많은데..... --;;;
|