C++ dll 생성 방법


1. Win32 콘솔 응용 프로그램을 선택합니다.


2. DLL 항목을 선택 후 프로젝트를 생성합니다.


3. 가독성을 높이기 위해서 dllExmple.h파일에 필요한 함수를 Define을 합니다.

#define MKVOICE_API __declspec(dllexport)

#define DLL extern "C" MKVOICE_API


4. dllExmple.h 파일의 함수 선언합니다.

DLL int __stdcall ClearCall();


5. dllExmple.cpp 파일의 함수 정의합니다.

DLL int __stdcall ClearCall()

{

      int nRet;

      try {

            nRet = SXClearCall(SX_MONITOR_HANDLE, m_hMonitor, NULL);

            lCallID = 0;

      }

      catch (...)

      {

            return -9;

      }

      return nRet;

}


6. 빌드 > 솔루션 다시 빌드를 하면 dll, lib 파일이 생성됩니다.


생성이 됐다하여도 외부에서 해당 함수를 사용하려면 .def 파일을 생성하여 함수를 작성해주어야 합니다.


7. 새 항목 > 코드(.def) 파일을 생성합니다.


LIBRARY "MkVoice"

EXPORTS

ClearCall @1

... @2

... @3

... @4

함수가 증가할 때마다 @숫자를 넣어서 증가 시킵니다.


8. 빌드 > 솔루션 다시 빌드를 통해 dll과 lib를 사용하고 싶은 곳으로 가져가셔서 사용하시면 됩니다.




PowerBuilder에서 C++ dll 사용 방법


1. C++로 만든 dll파일을 PowerBuilder 프로젝트로 복사합니다.


2. PowerBuilder에서 Declare > Global External Functions에 다음과 같은 함수를 구현합니다.

Function int ClearCall() Library "MkVoice.dll" Alias For "ClearCall"


3. 노란색 부분은 PowerBuilder에서 사용할 함수를 구현해주는 부분입니다.


4. 초록색 부분은 dll 파일의 이름과 dll 내부에 구현된 함수의 이름을 적어주면 됩니다.


5. 각각의 데이터 타입에 맞게 변환시켜 함수를 구현해주면 됩니다.

 Microsoft

 PowerBuilder

 Convert Data Type

 Bool

 Boolean

 Callback

 Not supported in PowerBuilder

 Char*

 Ref String

 Colorref

 Ulong

 Dword

 Ulong

 Handle

 Ulong

 Hdc

 Ulong

 Hfile

 Ulong

 Hinstance

 Ulong

 Hwnd

 Ulong

 Int

 Int

 Lparam

 Ulong

 Lpbyte

 Ref Ulong

 Lpdword

 Ref Ulong

 Lpfiletime

 Ref Time

 Lpint

 Ref Ulong

 Lpstr, Lpststr

 Ref String

 Lpvoid

 Ref Struct struct_name

 Pbyte

 Ref Long[#]

 Short

 Int

 Structure

 Ref Struct Struct_name

 Uint

 Uint

 Void**

 SUBROUTINE

 Word

 Ulong

 Wparam

 Ulong


6. 함수 구현이 끝났으면 사용하고 싶은 곳으로 이동하여 함수를 사용하시면 됩니다.