教程一讲到调用时有4种组合方式,下面具体来讲一讲这四种方式的使用方法(末尾给出代码示例链接):
方式一、__declspec(dllexport)制作方式和隐式调用相合
步骤一:首先将dll制作好后的头文件、dll文件、lib文件拷贝到调用该dll的工程中。
步骤二:用教程一中隐式调用的方法将dll加载到该工程内即可。
方式二、__declspec(dllexport)制作方式和显式调用相合
注意:这种方式必须在制作dll的头文件内,在导出函数前添加上extern "C"。因为如果不加的话,C++编译器考虑到函数的重载,会将dll中的函数名进行更改(可以使用dumpbin命令验证添加extern "C"前后是否发生变化)。这导致在使用dll过程中,使用GetProceAddress查找导出函数时必须使用更改后的函数名,很不方便。
步骤一:只需将dll制作好后的dll文件拷贝到调用该dll的工程中。
步骤二:用教程一中的显示调用的方法将dll加载到该工程即可。
方式三、def制作方式和隐式调用结合
步骤一:将制作好的dll文件和lib文件拷贝到调用该dll的工程中。
步骤二:由于def方式没有头文件,所以在调用程序中首先声明导出函数,再按照教程一中的隐式调用方法进行调用即可。
方式四、def制作方式和显式调用结合
注:该方式不会出现方式二中所说的函数名被更改的问题
步骤一:将dll制作好后的dll文件拷贝到调用该dll的工程中。
步骤二:用教程一中的显示调用的方法将dll加载到该工程即可。
PS:写这两篇文章花了俺两天时间啊。。。。是不是我太菜了??????!!!!!!!