고수닷넷 - Kei님
먼저 호출하고자 하는 VB로 작성한 DLL을 명시한다. 이렇게 하면 tli, tlh 파일이 생긴다. 이들 파일은 VC와 VB로 작성한 DLL을 연결해주는 중요한 파일이다.
다음으로 이 DLL을 사용하기 위해 초기화 작업이 필요하다.
물론 당연한 이야기이지만 DLL 사용이 끝나면 종료 작업을 해야 한다.
이제 위의 두작업 사이에 DLL을 호출하면 된다.
먼저 호출하고자 하는 VB로 작성한 DLL을 명시한다. 이렇게 하면 tli, tlh 파일이 생긴다. 이들 파일은 VC와 VB로 작성한 DLL을 연결해주는 중요한 파일이다.
#import "C:\Test.dll"
using namespace Test;
using namespace Test;
다음으로 이 DLL을 사용하기 위해 초기화 작업이 필요하다.
HRESULT hresult;
CLSID clsid;
_ClsMain *t;
CoInitialize(NULL);
hresult = CLSIDFromProgID(OLESTR("Test.ClsMain"), &clsid);
hresult = CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_ClsMain),(LPVOID *) &t);
if(FAILED(hresult))
{
MessageBox(NULL, "Creation Failed", "", MB_OK);
return;
}
CLSID clsid;
_ClsMain *t;
CoInitialize(NULL);
hresult = CLSIDFromProgID(OLESTR("Test.ClsMain"), &clsid);
hresult = CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_ClsMain),(LPVOID *) &t);
if(FAILED(hresult))
{
MessageBox(NULL, "Creation Failed", "", MB_OK);
return;
}
물론 당연한 이야기이지만 DLL 사용이 끝나면 종료 작업을 해야 한다.
t->Release();
CoUninitialize();
CoUninitialize();
이제 위의 두작업 사이에 DLL을 호출하면 된다.
인자가 없는 경우
t->func1();
인자가 BSTR * 인 경우 BSTR bstrSZ;
bstrSZ = SysAllocString(L"abc");
t->func2(&bstrSZ);
SysFreeString(bstrSZ);
bstrSZ = NULL;
인자가 long 인 경우 long i;
t->func3(&i);"Win32 API" 카테고리의 다른 글
- Watch 창에서 함수 실행하기 (0)2006/12/01
- 로컬 폴더에 있는 dll 사용하게 만들기 (0)2006/12/01
- VB로 작성한 DLL을 VC에서 호출하는 방법 (0)2006/12/01
- Safe TerminateProcess() (1)2006/11/29
- 현재 실행중인 프로세서 열거하기 (0)2006/08/17

수안이의 컴퓨터 연구실



Leave your greetings.