dynapp.cpp

来自「动态加载C++类的演示,程序需要在调试状态运行,通过Debug输出,不错的学习例」· C++ 代码 · 共 51 行

CPP
51
字号
#include <windows.h>

#include "dynclass.h"

int	main	(	void)
{

PFNCREATEMYCLASS	pfnCreateMyClass	=	NULL;
PFNDELETEMYCLASS	pfnDeleteMyClass	=	NULL;
PFNGETCLASSMETHOD	pfnGetClassMethod	=	NULL;
PMYCLASSMETHOD		pDoSomethingUseful	=	NULL;
CMyClass*			pMyClass			=	NULL;

HANDLE				hDll				=	INVALID_HANDLE_VALUE;

	hDll	=	LoadLibrary (	"dynclass.dll");

	if	(	INVALID_HANDLE_VALUE	==	hDll)
			return	(	-1);

	pfnCreateMyClass	=	( PFNCREATEMYCLASS)		GetProcAddress	(	(HMODULE)hDll, 
																		"CreateMyClass"
																	);

	pfnDeleteMyClass	=	( PFNDELETEMYCLASS)		GetProcAddress	(	(HMODULE)hDll, 
																		"DeleteMyClass"
																	);

	pfnGetClassMethod	=	( PFNGETCLASSMETHOD)	GetProcAddress	(	(HMODULE)hDll, 
																		"GetClassMethod"
																	);

	if	(		pfnDeleteMyClass	
			&&	pfnCreateMyClass
			&&	pfnGetClassMethod
		)
		{
			// et voila - an instance of CMyClass!
			pMyClass	=	( pfnCreateMyClass)	();

			pDoSomethingUseful	=	( pfnGetClassMethod	());

			( pMyClass->*pDoSomethingUseful)();

			( pfnDeleteMyClass	(	pMyClass));
		}

	FreeLibrary	(	(HMODULE)hDll);

	return	(	0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?