// dlltest3.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include // 显示调用dll:dll; // 只需要dll; int _tmain(int argc, _TCHAR* argv[]) { // 1.定义导出函数的函数指针; typedef int (*API_ADD)(int a,int b); // 缺省调用约定:__cdecl(项目本身调用约定),否则要指定__stdcall,如: typedef int (__stdcall *API_ADD)(int a,int b); // 2.加载dll文件; HMODULE mydll = LoadLibraryA("win32dll.dll"); if ( mydll != NULL ) { // 3.声明函数指针变量,并获取导出函数; API_ADD padd = (API_ADD)GetProcAddress(mydll, "add");//GetProcAddress(mydll, MAKEINTRESOURCE(1)); API_ADD padd2 = (API_ADD)GetProcAddress(mydll, "add2");//GetProcAddress(mydll, MAKEINTRESOURCE(1)); // ??如何导出全局变量?? int *presult = (int*)GetProcAddress(mydll, "g_result");//GetProcAddress(mydll, MAKEINTRESOURCE(1)); if ( padd != NULL && padd2 != NULL) { // 4.调用导出函数; printf("%d\n",padd(9,9)); *presult = 130; printf("%d\n",padd2(9,9)); } else { printf("加载dll函数出错\n"); } // 释放dll; FreeLibrary(mydll); mydll = NULL; padd = NULL; padd2 = NULL; } getchar(); return 0; }