[Delphi] C++, C# DLL 델파이 프로그램 연동 시 타입 구분

    728x90

    안녕하세요

    로로봉입니다 : )

    델파이에서 C++ 이나 C# 으로 만든 DLL을 사용할 때 타입 변환을 어떻게 해야할지 난감할 때가 많습니다.

    델파이에서 외부 DLL을 정의하는 방법은 아래와 같습니다.

    Const
       DLL_Name = 'Test.dll';
       
       function DLLFunctionName(hHandle: THandle): Boolean; stdcall; external DLL_Name;

    THandle이나 Boolean 등 매개변수와 반환 타입은 아래 표를 참고해서 변환 해주면 됩니다.

    C/C++ Type ObjectPascal Type
    unsigned short [int] Word
    [signed] short [int] SmallInt
    unsigned [int] Cardinal { 3.25 fix }
    [signed] int Integer
    UINT LongInt { or Cardinal }
    WORD Word
    DWORD LongInt { or Cardinal }
    unsigned long LongInt { or Cardinal }
    unsigned long int LongInt { or Cardinal }
    [signed] long LongInt
    [signed] long int LongInt
    char Char
    signed char ShortInt
    unsigned char Byte
    char* PChar
    LPSTR or PSTR PChar
    LPWSTR or PWSTR PWideChar { 3.12 fix }
    void* Pointer
    BOOL Bool
    float Single
    double Double
    long double Extended
    HANDLE THandle
    FARPROC TFarProc
    ATOM TAtom
    TPOINT TPoint
    TRECT TRect
    COLORREF TColorRef
    OFSTRUCT TOFStruct
    DEBUGHOOKINFO TDebugHookInfo
    BITMAP TBitMap
    RGBTRIPLE TRGBTriple
    RGBQUAD TRGBQuad
    BITMAPCOREHEADER TBitmapCoreHeader
    BITMAPINFOHEADER TBitmapInfoHeader
    BITMAPINFO TBitmapInfo
    BITMAPCOREINFO TBitmapCoreInfo
    BITMAPFILEHEADER TBitmapFileHeader
    HANDLETABLE THandleTable
    METARECORD TMetaRecord
    METAHEADER TMetaHeader
    METAFILEPICT TMetaFilePict
    TEXTMETRIC TTextMetric
    NEWTEXTMETRIC TNewTextMetric
    LOGBRUSH TLogBrush
    LOGPEN TLogPen
    PATTERN TPattern { TLogBrush }
    PALETTEENTRY TPaletteEntry
    LOGPALETTE TLogPalette
    LOGFONT TLogFont
    ENUMLOGFONT TEnumLogFont
    PANOSE TPanose
    KERNINGPAIR TKerningPair
    OUTLINETEXTMETRIC TOutlineTextMetric
    FIXED TFixed
    MAT2 TMat2
    GLYPHMETRICS TGlyphMetrics
    POINTFX TPointFX
    TTPOLYCURVE TTTPolyCurve
    TTPOLYGONHEADER TPolygonHeader
    ABC TABC
    RASTERIZER_STATUS TRasterizer_Status
    MOUSEHOOKSTRUCT TMouseHookStruct
    CBTACTIVATESTRUCT TCBTActivateStruct
    HARDWAREHOOKSTRUCT THardwareHookStruct
    EVENTMSG TEventMsg
    WNDCLASS TWndClass
    MSG TMsg
    MINMAXINFO TMinMaxInfo
    SEGINFO TSegInfo
    ACCEL TAccel
    PAINTSTRUCT TPaintStruct
    CREATESTRUCT TCreateStruct
    CBT_CREATEWND TCBT_CreateWnd
    MEASUREITEMSTRUCT TMeasureItemStruct
    DRAWITEMSTRUCT TDrawItemStruct
    DELETEITEMSTRUCT TDeleteItemStruct
    COMPAREITEMSTRUCT TCompareItemStruct
    WINDOWPOS TWindowPos
    WINDOWPLACEMENT TWindowPlacement
    NCCALCSIZE_PARAMS TNCCalcSize_Params
    SIZE TSize
    MENUITEMTEMPLATEHEADER TMenuItemTemplateHeader
    MENUITEMTEMPLATE TMenuItemTemplate
    DCB TDCB
    COMSTAT TComStat
    MDICREATESTRUCT TMDICreateStruct
    CLIENTCREATESTRUCT TClientCreateStruct
    MULTIKEYHELP TMultiKeyHelp
    HELPWININFO THelpWinInfo
    CTLSTYLE TCtlStyle
    CTLtype TCtltype
    CTLINFO TCtlInfo
    DDEADVISE TDDEAdvise
    DDEDATA TDDEData
    DDEPOKE TDDEPoke
    DDEAACK TDDEAck
    DEVMODE TDevMode
    KANJISTRUCT TKanjiStruct

     

    공감 ♥ + 구독부탁드립니다 : )

     

    728x90
    반응형

    댓글