C++ dll 생성 방법 및 PowerBuilder에서 C++ dll 사용 방법
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. 함수 구현이 끝났으면 사용하고 싶은 곳으로 이동하여 함수를 사용하시면 됩니다.
'Backup > Windows' 카테고리의 다른 글
C++ 후위표기법을 중위표기법으로 변경하는 샘플 (1) | 2018.06.11 |
---|---|
C++ 중위표기법을 후위표기법으로 변경하는 샘플 (0) | 2018.01.26 |
CreateThread, _beginthread, _beginthreadex, AfxBeginThread 차이점 (0) | 2018.01.03 |
(출처) C++ 프로그래밍 스타일 가이드라인 코딩/프로그래밍 규칙 (2) | 2017.12.24 |
콘솔게임 만들때 자주쓰는 함수- 4.음악사용 (0) | 2017.12.21 |
댓글
이 글 공유하기
다른 글
-
C++ 후위표기법을 중위표기법으로 변경하는 샘플
C++ 후위표기법을 중위표기법으로 변경하는 샘플
2018.06.11 -
C++ 중위표기법을 후위표기법으로 변경하는 샘플
C++ 중위표기법을 후위표기법으로 변경하는 샘플
2018.01.26 -
CreateThread, _beginthread, _beginthreadex, AfxBeginThread 차이점
CreateThread, _beginthread, _beginthreadex, AfxBeginThread 차이점
2018.01.03 -
(출처) C++ 프로그래밍 스타일 가이드라인 코딩/프로그래밍 규칙
(출처) C++ 프로그래밍 스타일 가이드라인 코딩/프로그래밍 규칙
2017.12.24