
1.首先调用dll
先用vs2010生成自己的dll文件,我命名为testdll.dll
首先新建一个工程testdll,在工程中加入testdll.h和testdll.cpp
testdll.h内容为:
extern "C" int __declspec(dllexport) add(int,int);
testdll.cpp内容为:
#include #include "testdll.h" BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } int add(int a,int b) { return a+b; } 还有设置一下 编译就生成了testdll.dll库文件 再新建一个工程test 在test里面建立一个test.cpp Test.cpp内容: #include #include #include using namespace std; int main() { HINSTANCE hDll; //dll 句?柄À¨² hDll=LoadLibrary(TEXT("testdll.dll")); //加¨®载?dll typedef int(* lpAddFun)(int,int); //宏¨º定¡§义°?函¡¥数ºy指?针?类¤¨¤型¨ª lpAddFun addFun; //函¡¥数ºy指?针? int * num; if(hDll!=NULL) //判D断?dll加¨®载?是º?否¤?成¨¦功| { addFun=(lpAddFun)GetProcAddress(hDll,"add"); //获?取¨?想?要°a引°y入¨?的Ì?函¡¥数ºy以°?及¡ã变À?量¢? num=(int *)GetProcAddress(hDll,"num"); /* if(num!=NULL) { printf("%d\\n",* num); }*/ if(addFun!=NULL) { int result=addFun(3,2); printf("3+2=%d\\n",result); } FreeLibrary(hDll); //卸?载?dll } getchar(); return 0; } 设置三个地方,就可以编译了 第一: 上面打红圈的就是把testdll.dll的路径添加上去 第二: 添加testdll.lib就可以了 第三: 就是把testdll.dll路径添加到环境变量PATH中,就可以了。 再把VS2010关闭,再打开就可以运行。 2.调用lib 见这个链接很详细了,我就不写了很简单的 http://blog.csdn.net/mafuli007/article/details/7320663
