VS2010에서 DLL 생성 및 DLL 호출(동적)

1770 단어

DLL 생성


새로 만들다
indows Console Application, '응용 프로그램 유형' 옵션에서 DLL, '추가 옵션' 에서 빈 항목, 항목 이름이CreateDll (자체 정의) 이고CreateDll을 추가합니다.def 및 CreateDll.cpp 파일 2개
/**********************************************/   
/*FileName:CreateDll.cpp                          */   
/**********************************************/    

int add(int a, int b)
{
	return a+b;
}

 int subtract(int a, int b)
{
	return a-b;
}

 int multiple(int a, int b)
{
	return a*b;
}
CreateDll.def 파일의 내용은 다음과 같습니다.
4
LIBRARY CreateDll

EXPORTS
add
subtract
multiple
컴파일 생성, 해결 방안의 Debug 폴더에서Create Dll을 발견.dll 파일



DLL 동적 호출


새 Windows Console Application을 만들고 "추가 옵션"에서 빈 항목을 선택하십시오. (주의: 우선 CreateDll 프로젝트에서 생성된 CreateDll.dll과 CreateDll.lib 두 파일을 해결 방안 디렉터리가 아닌 이 프로젝트의 디렉터리로 복사합니다.) InvokeDll을 추가합니다.cpp 파일, 내용은 다음과 같습니다.
#include 
#include 

int main()
{
	/*  dll             */
	HINSTANCE hInst = LoadLibrary(L"CreateDll.dll");
	if(!hInst)
	{
		printf("CreateDll.dll  !
"); } typedef int (*CreateDllAPI)(int a, int b); CreateDllAPI Add = (CreateDllAPI)::GetProcAddress(hInst,"add"); printf("5+3=%d
",Add(5,3)); ::FreeLibrary(hInst); // dll _stdcall /*HINSTANCE hInstStd = ::LoadLibrary(L"CreateDllStd.dll"); if(!hInstStd) { printf(" CreateDllStd.dll !
"); } typedef int (_stdcall *CreateDllStdAPI)(int a, int b); CreateDllStdAPI AddStd = (CreateDllStdAPI)::GetProcAddress(hInstStd,"add"); printf("5+3=%d
",AddStd(5,3)); ::FreeLibrary(hInst);*/ return 0; }

권장 리소스 다운로드: VS에서 DLL 생성 및 정적 동적 호출 프로젝트

좋은 웹페이지 즐겨찾기