请教个Dll问题 写了一个Mfc Dll.文件名为Test.Dll
void Rxg::Meg() { AfxMessageBox("ddd"); }
在另一个Mfc Apolication应用文件 如何调用Test.Dll里的Meg()这个函数
谢谢:)
楼上版主的是显式链接,但"WINAPI*TESTDLL"这里错了.DLL的链接方式有两种"隐式链接"和"显式链接".我以下的也是显式 (显式优点更大). 如果你想调用DLL里的函数,你就要确定那些"导出函数",那些是"内部函数"."内部函数"是不能调用 的,只有"导出函数"可用.指定"导出函数"有三种方法,我只介绍其中的一种"DEF文件导出函数"(如果你有兴趣 想知道其佘两种可以再发贴告诉我). DEF文件导出函数:在DLL工程中新建一文本文件(后缀为.DEF)输入: LIBRARY TEST.DLL EXPORTS Meg @1 (MFC DLL会自动生成,不过导出函数还要自己指定.只有Win32要手动) 2):打开TEST.CPP输入如下: #include <windows.h> void Meg();
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { switch(fdwReason) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_PROCESS_DETACH: case DLL_THREAD_DETACH: break; } return TRUE; }
void Meg() { AfxMessageBox("ddd"); } 3):生成DLL. 4);打开你要链接DLL的MFC程序源文件输入如下则可调用void Meg()函数: HINSTANCE hInstance; FARPROC pFunction; hInstance=::LoadLibrary("TEST.dll"); pFunction=::GetProcAddress(hInstance,"Meg"); pFunction(); FreeLibrary(hInstance); 5):生成程序OK.
[此贴子已经被作者于2005-10-21 22:31:36编辑过]