C++调用DLL接口

来源:互联网 发布:ad hoc 路由算法 编辑:程序博客网 时间:2024/06/01 21:07

基础概念:

  • SDK
  • API
  • DLL

SDK

sdk 软件开发工具包,软件开发工具包广义上指辅助开发某一类软件的相关文档、范例和工具的集合。一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件 —— [ 百度百科 ]

API

API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。 —— [ 百度百科 ]

DLL

DLL,即 Dynamic Link Library(动态链接库)。在windows环境下含有大量 .dll格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟 .exe 文件不同的是,.dll文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及可执行代码等。 —— [ 百度百科 ]

第一步——建立工程(隐式调用)

文件->新建项目->控制台程序—>Win32控制台程序——>空项目(其他默认)完成

第二步——添加XX.h和XX.cpp(C++调用)

文件->新建项目->控制台程序—>Win32控制台程序——>空项目(其他默认)完成

head.h

#include<stdio.h>#include<conio.h>extern"C" __declspec(dllimport) int Plat_Init();

testdll.cpp

#include"head.h"int main(int argc, char*argv[]){    Plat_Init();    //getch();    return 0;}

第三步——添加XX.lib和XX.dll

选择项目右击——>添加——>现有项——>找到对应的lib文件

其中XX.lib是在生成dll时产生的lib 解释: 如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容;如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。

第四步——编译运行

如果提示
选择项目右击——>添加——>现有项——>找到对应的lib文件
如果报错:计算机上丢失XX.dll
解决方法如下:
将XX.dll文件复制到system32文件下/win8系统 syswow文件夹下面。

0 0