用C++语言调用dll程序

调用DLL有两种方法:静态调用和动态调用. 
(
).静态调用其步骤如下: 
1.
把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)Debug目录下; 
2.
把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下; 
3.
把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程) 
录下(一定记得要在.cpp文件中包含.h文件,另外在生成.dll文件时,其cpp文件中也应包含.h文件,否则会出现找不到对应接口函数,进而调用失败的现象,VeryImportant

在编译dll文件时,如果其cpp文件没有#include头文件,那么只能生成dll文件,没有lib文件。
4.
打开你的目标工程选中工程,选择Visual   C++Project主菜单的Settings菜单; 
5.
执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然 
后在Object/library  modules输入框中输入:youApp.lib 
6.
选择你的目标工程Head   Files加入:youApp.h文件; 
7.
最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include   "youApp.h" 
注:youApp是你DLL的工程名。 
2.
动态调用其程序如下: 
动态调用时只需做静态调用步骤1. 
{
 
HINSTANCE   hDllInst   =   LoadLibrary( "youApp.DLL"); 
if(hDllInst)
 

typedef   DWORD   (WINAPI   *MYFUNC)(DWORD,DWORD); 
MYFUNC   youFuntionNameAlias   =  NULL;   //   youFuntionNameAlias  
函数别名 

youFuntionNameAlias   =  (MYFUNC)GetProcAddress 
(hDllInst, "youFuntionName ");
 
//   youFuntionName   DLL中声明的函数名 
if(youFuntionNameAlias)
 

youFuntionNameAlias(param1,param2); 

FreeLibrary(hDllInst); 


试试看。

 


显式(静态)调用: 
LIB   +   DLL   +   .H
,注意.Hdllexport改为dllimport 

隐式(动态)调用: 
DLL   +  
函数原型声明,先LoadLibrary,再GetProcAddress(即找到DLL中函数的地址),不用后FreeLibrary


你可能感兴趣的:(C++,c,null,dll,语言,winapi)